From 39fee02a06a1738a8628def3e4ca18ca59079b53 Mon Sep 17 00:00:00 2001 From: robertlipe Date: Sun, 7 Dec 2014 23:46:57 +0000 Subject: [PATCH] Misc minor internal code cleanups. Reduce header chain includes. ex. move things from defs.h (where they'd get compiled for every file) to places that actually needed them. Try to bring some sanity to includes and order and remove a lot of our C-era includes. (I know this is going to come back to byte me...) --- gpsbabel/GPSBabel.xcodeproj/project.pbxproj | 6 +- .../UserInterfaceState.xcuserstate | Bin 143907 -> 142741 bytes .../xcschemes/GPSBabel.xcscheme | 2 +- gpsbabel/alan.cc | 3 - gpsbabel/an1.cc | 6 +- gpsbabel/arcdist.cc | 3 +- gpsbabel/bcr.cc | 5 +- gpsbabel/bend.cc | 9 +- gpsbabel/brauniger_iq.cc | 1 - gpsbabel/cet.cc | 5 - gpsbabel/cet.h | 3 - gpsbabel/cet_util.cc | 7 - gpsbabel/cet_util.h | 2 - gpsbabel/compegps.cc | 5 - gpsbabel/cst.cc | 4 - gpsbabel/csv_util.cc | 5 +- gpsbabel/defs.h | 4 +- gpsbabel/delgpl.cc | 3 - gpsbabel/destinator.cc | 5 +- gpsbabel/dmtlog.cc | 4 - gpsbabel/duplicate.cc | 1 - gpsbabel/easygps.cc | 1 - gpsbabel/energympro.cc | 2 +- gpsbabel/enigma.cc | 3 +- gpsbabel/exif.cc | 7 +- gpsbabel/filter_skeleton.cc | 1 - gpsbabel/format_skeleton.cc | 5 +- gpsbabel/formspec.cc | 4 - gpsbabel/garmin_fit.cc | 2 - gpsbabel/garmin_fs.h | 1 - gpsbabel/garmin_gpi.cc | 5 +- gpsbabel/garmin_tables.cc | 3 - gpsbabel/garmin_txt.cc | 8 +- gpsbabel/garmin_xt.cc | 1 - gpsbabel/gbfile.cc | 5 - gpsbabel/gbfile.h | 6 +- gpsbabel/gdb.cc | 50 +----- gpsbabel/geo.cc | 10 +- gpsbabel/ggv_ovl.cc | 7 +- gpsbabel/glogbook.cc | 6 +- gpsbabel/gnav_trl.cc | 1 - gpsbabel/google.cc | 5 +- gpsbabel/googledir.cc | 2 +- gpsbabel/gopal.cc | 6 +- gpsbabel/gpssim.cc | 2 +- gpsbabel/gpsutil.cc | 2 +- gpsbabel/gpx.cc | 7 +- gpsbabel/grtcirc.cc | 6 +- gpsbabel/gtrnctr.cc | 2 +- gpsbabel/gui/setup.iss | 170 +++++++++--------- gpsbabel/height.cc | 2 +- gpsbabel/holux.cc | 4 - gpsbabel/html.cc | 1 - gpsbabel/humminbird.cc | 7 +- gpsbabel/igc.cc | 3 +- gpsbabel/ignrando.cc | 8 +- gpsbabel/igo8.cc | 2 - gpsbabel/ik3d.cc | 2 +- gpsbabel/inifile.cc | 5 - gpsbabel/itracku.cc | 2 +- gpsbabel/jogmap.cc | 6 +- gpsbabel/jtr.cc | 8 +- gpsbabel/kml.cc | 7 +- gpsbabel/lmx.cc | 3 +- gpsbabel/lowranceusr.cc | 6 +- gpsbabel/lowranceusr4.cc | 1 - gpsbabel/maggeo.cc | 7 +- gpsbabel/magproto.cc | 1 - gpsbabel/mapasia.cc | 2 +- gpsbabel/mapfactor.cc | 6 +- gpsbabel/mapsend.cc | 5 +- gpsbabel/mapsource.cc | 4 - gpsbabel/mkicondoc.cc | 4 +- gpsbabel/mmo.cc | 29 +-- gpsbabel/mtk_locus.cc | 4 +- gpsbabel/mtk_logger.cc | 7 +- gpsbabel/mynav.cc | 53 +++--- gpsbabel/naviguide.cc | 8 +- gpsbabel/navilink.cc | 15 +- gpsbabel/navitel.cc | 1 - gpsbabel/parse.cc | 8 +- gpsbabel/pcx.cc | 3 +- gpsbabel/pocketfms_fp.cc | 2 +- gpsbabel/position.cc | 2 +- gpsbabel/psitrex.cc | 3 - gpsbabel/queue.cc | 2 +- gpsbabel/saroute.cc | 4 +- gpsbabel/sbn.cc | 1 - gpsbabel/sbp.cc | 1 - gpsbabel/skyforce.cc | 4 +- gpsbabel/skytraq.cc | 4 +- gpsbabel/stmsdf.cc | 5 - gpsbabel/subrip.cc | 1 - gpsbabel/swapdata.cc | 1 - gpsbabel/tiger.cc | 3 +- gpsbabel/tmpro.cc | 1 - gpsbabel/tpg.cc | 2 - gpsbabel/tpo.cc | 4 +- gpsbabel/trackfilter.cc | 33 +--- gpsbabel/unicsv.cc | 7 +- gpsbabel/v900.cc | 33 ++-- gpsbabel/vecs.cc | 2 +- gpsbabel/vidaone.cc | 1 - gpsbabel/vitosmt.cc | 9 +- gpsbabel/vitovtt.cc | 8 +- gpsbabel/vpl.cc | 2 - gpsbabel/waypt.cc | 9 +- gpsbabel/wbt-200.cc | 1 - gpsbabel/wfff_xml.cc | 3 +- gpsbabel/xmlgeneric.cc | 10 +- gpsbabel/xmlgeneric.h | 1 + gpsbabel/xmltag.cc | 5 +- gpsbabel/xol.cc | 3 +- gpsbabel/yahoo.cc | 3 +- 114 files changed, 251 insertions(+), 556 deletions(-) diff --git a/gpsbabel/GPSBabel.xcodeproj/project.pbxproj b/gpsbabel/GPSBabel.xcodeproj/project.pbxproj index e6872419a..d2908e0af 100644 --- a/gpsbabel/GPSBabel.xcodeproj/project.pbxproj +++ b/gpsbabel/GPSBabel.xcodeproj/project.pbxproj @@ -1394,7 +1394,7 @@ 6DB9C3763D02B1415CD9D565 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0500; + LastUpgradeCheck = 0610; }; buildConfigurationList = DAC4C1AA5EDEA1C85E9CA5E6 /* Build configuration list for PBXProject "GPSBabel" */; compatibilityVersion = "Xcode 3.2"; @@ -1664,10 +1664,12 @@ CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = YES; DYLIB_COMPATIBILITY_VERSION = 1.0; DYLIB_CURRENT_VERSION = 1.0.0; + ENABLE_STRICT_OBJC_MSGSEND = YES; FRAMEWORK_SEARCH_PATHS = ( /Users/robertlipe/Qt5.2.1/5.2.1/clang_64/lib, /Users/robertlipe/Qt5.2.1/5.2.1/clang_64/lib, @@ -1755,10 +1757,12 @@ CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; DYLIB_COMPATIBILITY_VERSION = 1.0; DYLIB_CURRENT_VERSION = 1.0.0; + ENABLE_STRICT_OBJC_MSGSEND = YES; FRAMEWORK_SEARCH_PATHS = ( /Users/robertlipe/Qt5.2.1/5.2.1/clang_64/lib, /Users/robertlipe/Qt5.2.1/5.2.1/clang_64/lib, diff --git a/gpsbabel/GPSBabel.xcodeproj/project.xcworkspace/xcuserdata/robertlipe.xcuserdatad/UserInterfaceState.xcuserstate b/gpsbabel/GPSBabel.xcodeproj/project.xcworkspace/xcuserdata/robertlipe.xcuserdatad/UserInterfaceState.xcuserstate index 040d732b88c73b3c79d4d788632795e5765c5740..b2b656810b4284fc5b8c0ec2d85106b70f6aa93e 100644 GIT binary patch literal 142741 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 literal 143907 zcmdqK2Ygf2|Nno_-77oIXqw4Xpddp;Wpt!a>7r@b5DEk+los29f++Vm5El+`1G1fn zTNL+RxCfvg_ugCFzjJPy^rlVHr1k&%KmPyk_zd~+sz-la)4R24nVA4W}nZzt&KCy_X zCzcY8L^IJsoI;#RoK2iVtR>DR))DK8i;0cICSo(Og}9E`O6(wRCT<~aBkm;bBK8rF z5RVd%5ibx2h!=^Mh?j|1h&PB&h);>nh|h^Hh%bq+h_8w7i0{Dx@CtYX90YHJcfkkX zWAGXH5_|)`2S0&d!SCQN@GnV{49SxcsV7aOm9&$&q?`1Sy~w`gQRF~!FgcVQK^{k* zK#m~`$YOFlc@kMpR*@lcGC7T$NruU}WQ1HqE+HGqlgU={6mk`LI;oInk!#8G$P3Af z$;-&g$*ag~$t~nIawmB`c@w#Zyp6n*yobDxe1LqIe2jdOe1?3Ue35*Ge4TuYJWT$N ze4qS?{FMBH{F?lZ{E_^HJVO3S{zCzZrZ`HZbd-^@P&Ud*KJM` zHIh1>8cmI(il`E*lq#btscNd0no7-}W>a<4d}<-Jm|99LqgtpH)JkeKwT3#AI)_?E zT|lj;E~Pe7S5ntdo2jkT4r(`bBXtY4m%4+xo7zY1ryimnrJkUkrk4o$X`V{(9dL_MzK8=R-ne@5z z#q=fgrSxU=2Krih6TO+6hr2=~tKs znMat%nWva%nHQLsm{*xMn1jsQ%)877%*V`U%$LkJ%=gSs%&*Mv%wNpEEXgt~&q}PG zHL+IK&gQai*2nf@`?5!|1KGjsP<8}+9D4#ghAm)=+41a2Y&l!ShS>l`#<)5_9OOF_6zoF_B-}R_80aD`zQMk2RNGJ zIFZwFM$W?7I476KdAR`BhwIM`;PSa+xZ&JL?s#rAH;yafO1M(4jH~3Txms>2H-nqa z)p7H=h1_CpDYuMk;Z|@fxz*en?o93+ZXI_4x1PI{+sIwXUBhkWwsJeT-Q11bE!V;;Qr)|3Cg+{$u_V{!9Kx{wMxt{ulml{vZBd zff9H@5JbT$VP{o+I7qv8|d)8cdD0r6$=HStaH zkob=Hp7^2oiTJtrmH4grgZQ)foA`(Lw?s&k#7crBO9sg-<#FNxDwjF71+TkZzW4m2Q{rlJ1r6mmZWJksghIO>(?6hpQ2(g@G5u5er}fY4U(mm-e?|X>{!RU1{oDHY^zZ9G)_SWKpH3mXW$L8L1!=-%m$mmZg3g$3_gS3(8ti%aI|57 zVX$F{VYp$0VU*!`!x+O@Ly@7_Fu_o2C^u9XstqB-6vI@*Ov5ZgonfwFfnlLxiJ`%; z%y6<{xnYH2mEknQ8iQgu+i;HIJj3~h^@fWL8w?u_R~fE0Y&L8$Y&YyMTyMC+aEoD& z;da9vhI zBTdJdPBe`+6_^T5C8qJFiKa4Bm1&Zx)->5P-891#Hq9~3H$_bKrp2a4QvG+ku6)O4BY3e%OQ9j2Y8U8dcp>rFS9ZZzFwy4iHEX`ksn z)BUFXrUy(9njSJeXL{cBg6V+ikm<1LZPPoZ&rM&LzBGMh`ptC2^tJYado@~q`K%k!4EEC(%zEQc+hT0XOUZu!~ri{)3#Z&u1mTNx{B zHCruKt2M`Jv)Zi=Yj0~GYhPoDtZ>j>+y)wH zWL;)G*?PM54C@-JV!hCMk#)WGV(YcmP1eoUE!LZ?H(PJ9?y=ryz2Cau`hfKr>$BG9 ztj}BDvL3V^vL3d6YW>Xmx%CU{FV5X0n-W7Ms`Rv-xcSTfS|uZHVm{+i2Su+gRH;TbZrg zR$;5O&9Ke1&9cq5Ew(MOHP}wIt+cJOon|}Nw$65*?R?u6wkvH{*{-(jvhB8AZ@a;E zm+fxbJ+^yokK3NGJ!yN&_NwhQ+v~PBY#-P@w0&gz*!I2c2iuRfpKSly2|KWpcD>zT zH`+~hx7}m++I{wc_CfZ1`(XPC_7m-+?PKgG*(ch|?B(`p_UZN+_L=rY_Imqb`x5&p z_EYUE?W^o-?dRIp**DrRw_jnu(!RsK)4t2T+kS`rPWxTcpOJN1~>*f202DK zj(42kIMFe|QR+C!G0`!_G1W26G2OAivCy%|QSVspSm8LuahBt3$2pF*j>{Yy92*^% zJGMEtJ9aqsI&O2^?zqG8kmF&;BaTNM2OKXtUUIzbc*pTS$GeXA9A7!Uc6{Ub*71kq zPsd-5zny|pbV^Ry>2NxoxlWg}pR>R7DCg16W1S2aV~H+J6oKs&gD+%JkxoW^K9oO&P$z_Ikz~kb8dBRbMA58>fGzR&G~@yLFYrx zhn>$mUvM699&#RbzU_R+`ML88=a zF!!R|^|=@4UXr^hcXRHR-0O00&b=jfPwuU`_vh}5v~GP zp{vMM?5c82a#g!#yTYzHt~%FJSEH-Rwam5Jb-L>e*BaLat_xikxz@X`ab4@$$=l*musKvKG%b;hg^@j9(O(MddBsF>wxPO*Q>6Bu0yVOTpzkVa(&_Y()F$DSJz*8 zL>`^T=jrk+dDgt#JXfASFOb(aZ(!b#ykql5=8eu9lQ%YReBOk-(!7)MCg#=VP0pK= zH#IMuSD&{yZ%JN5-qO6ryr#UBd8_hH%UhkdHt*cLb$J)$U7NQlZ*$(3yzBC|=IzY8 zKJSLS8}n|;yEX4f-d}ltyMdc@vu@5Uxn;M}ZF1+hZSGvR%k6dh+`Zj>+()^OcIUeX zyN9`lyN`2^a*uY8aTmIa+~eI7+-2@^_at|;`!e?i_m%Fe+*{q-+}qtd+&kU3xc9hkb?`y=?>X7i>}m0|dRBW*_nhHb>p9o6&U1<9QqN_c4W4T~n>?F6yF9x+ z*L(JQZu8vkxzBUIXTRrh&l8>}JqJ85dS3Fpo!~9?p5&eAo#d_d zPVt7lbG(bZ_1;swr+Qa%N1&_k8dBKJb0$`^5Ky?-$=+zQ29{_<>*NH~H;;hu`VX^Y`}; z^bhq9^AGor^dIjZ;~(oU^iS|t_$T|P_^0~k`0M<0{fqre{0;u4{HNAm>mcQ<^<{ja|81NO@U>BlLO6xmcYuus=%7Sxq)?o^8%L! zE(>f3TphS3ur;tNuqSY9U~k~I!0mzi0`~{@2ObSP7I-G`Y~VoPwZOr^`+*Mv9|pb* zd=>aQ@J(&+#^ntSuMq+v5)vU32Esh0B9y-*va)45`tP>;x5>TdHPp4VY$tStULh4~ zJ7FYD3Jv+QmHe>LT3Q^O($u`9Wm(<4NO9A=jjPzM8PUb!ByASyMA= zJVUGVFQaYHq?8wxQ+Aa5eH13zKLQHujCCMBX#8zLRaJX?gR!ND-0_8~dd*ENfaAt8J{@ zr9>r>zl%7Dm`IcnyrrhDd10h&ycgl=Ik|Z# z(tt)}WPWUrlp(jp(-JZtlteuo{ky{D^$qhwkybQ`Eo_MvF*dr+BQ7BFw-M(n{k9Po zD*bVdOvRIHLb%kEQK?H?BTHLeRo9bChz;9`ONq;rqm;qQF)@M5iK__ncH#=+O66!} zz;@zl;u>Y3GDyjvg=9+SBWJ8%P#d_ML9>n6 zKC>cJT#sh)rpCJFmD`DJ#JpHGJBjN%WOF0RW{8sCYuwr)8j(H3t+Oja<;z>^<~BqM znw#rZ?jZIMdx?2y5>Wpb&FgmJjDM1{7(Eq{7L*p z{7w8r{0j&G00}5S0|u~w13VCb2qYi_9nb>-~djL3tS)%xPb?F zfe-jW0Q3UAK_Ac;^aK6DQQ&AW01O0!Kt31@hJa(hP%sP(2P43-U?eyWi~`4l6TpdJ zG#CTMf^nb#6oMj941%Bpj0Y1yDL4sC1ZAKcRDeoQ1tx)N5CS!z7EA_Hz*H~|Ob0W- zOfU<~24OG<)PcER9+(dzU;$VN7J+)O7%Tw|U@2$>O<)-~88m|y& z5?lqY2G@XV!6vX7YysDStzaA24t9W@U>Dd8t_L@O8^KNBW^fDG18xO-!ENAna0j>( z+y(9i_kerBK5!qnAM6JYfCs@t;9>9xcoaMa9tTf=C&5$TY48kq7CZ-@S58vOlyap) zsZ^?zNlLX6Qfic1WwJ6wnW{`vrYkd)naV6>wh~t6D0RwQWu7u$i6{${g~}qOURkUx zQ5uw`N~6-GEK^Qanw1u%RavgAP)<=!RaPpil+%>e%IV4(${IycpmL^imU6aojxc_l`E7hm8+Dim1~r1l}*ZKWs7p1vQ^op zY*%(DJC$9^ZsmIA2IWTOCgo=37G;letFl+QO}SmUL%CDAOSxOQN4Zzor`)I9uk2SI zP##nsQXWw$`{I)%2&$Q$~Vfl%6H25 z$`8tq%1_GA$}h^V%5TaM<#*)|{A5_owU+DEpuHlxK-eDXhrMt^5#g(>eU6s#icc+l@$eL z;ZX6!khsIsDLTDYL7rgU;JT!1uV*6(BMULCDNwN+J>)iuH5a8+4BO-W^S zdAtlC;RLRZ2__eml@_bQal=osp%X->vrIwp$Ow6vnAthP89o)9c3Mr90_R9BXVaqVibUU6+vO+st@ zgVm1es8(HD5iTk#KskqMP{E7B1;~S^O%KKzkpwu|(2mJMMFkb%f->amm9^DH!7wU) z5S5^^8nuC1s#wF4G*0j9m|k_4wwmLTwpE$ruyr4R&y2oMJ=!uhE?m7Dw@EluI=&(t ztf(oiDGQdP|Bh!M;w1i*Nzl<0Cz=+^L5Ix;rZle(w$-S*7T2h%pe8m_NFz?!yF<## znhC*bwb!C0EGa7(A1|5(r?7+K$g+l}mH32)oWG{Jv?{^KhK=$Pj0(zXg4GqcdB#^) z)>g%e?o4M{IR*Jr%rXyKx>9JCx4RhW#fJS;7*++V%S%Jp`BB&64vxtOa4LU7Dm3^C zODm8wmKIl)hD*x}#-g`kKwY)B6Y;X#QS6GzNxIMDnm8MyNiOT zTovPEX$Iglxd~}XE09AY2Tf?f{M2>{?RN~e^CZ>7trx}}7|VM&wzVeM7NcHnpODFs z*ut4$5i6b6zmCUdeG<&d3yLa3Q^T6pswt=*AB+!|(VdgD4SkfRq_jd^kzz;-)pcWb>XfTaGO-jTIE5ogicrn8ve=wPmSU?!&kO~t z3e;Ip%^)UM7B!q0X>N=(_|T?#c|&CNYSj8@T!t$O%HxWa*f0+yH$-)+j#s@pon)w{ zGCt61v7sl0Wa4^2PQ|u%P*&f#M4hY(Yb%OT3Ck++q#Ucv3~bb=-Kcn4S!p4fHOf){ zmlmR#zh+v8b%vaclXyENsjaTYgQi0v>aej}V~m!Bwn+)kH&vRUG9R1vYd1x!&O|hW z6_IZg~c_CqipbC|Hel62QNjs6<2Beq<2KQCq^vk$X*d%bY1}5hUnnmKp;iu~EmE+kCPDWc zoJ3P;)KhAmP%YxUxenWS+DkVv7_35DhSJG+#R*QuYfs$v0&MGVw?(atwhVaM3WtJt zAE_>par5;Zq}#`~+JoUB+9b!C;8JX>X@Xc$6PjQnHgdM-A3_ywYfbG+du4}W)>fqT zoohO%PARCaz`L&w?Y|kDX&MSuUeg6t2@Ss$+x7ufb@P_g;g1aHL{L?Qw%pNuL@C;3 zRaQ+)Tt;``BtC7D;M8DIZB0QTnm}+rRA@Gy<41(bGCUD!cOB2+M2^Hn>bjn=$R5B}y%VhPrb6|GFq%?3x9!WFDo|Bh zScVQ5Y0B~%PSanT3*HhS|4hgySb+`%=x<}yeiNrk7#LHk(bz-v>@mqz|FPnlFzP9PC7Bz0-oc0b*)TcwDc1KS(4Zeqy1Ue*%Ry>vu?t{29eTeOQ zb+C^vJkydU_yi~Lc1TbioSxM9b8LKK2jk#W^_+&Lb2R0k6E0fJH8lx`Y75axTAge) zOW#+?l-f>w*(rUCl{)r>+V*Lh>4#{oYtfekUyb^87EQC!S)nF~y-~X){G7~KH7h8= zi>EpR#(d~EZ0rDu%Bt}Mbl`|t{ei9Q$*ihNx3HtG!~N8i6h53p^!HZ*Uk3wGk} zjUsRgPeO_|3-v}pJLOUow(XPJHoEMgeOXaiTd64)C-J3D5}mDL)9(OES%J7~;J^56l zy9#_Bj@8M5RmWtZiVKM+HMDI*H)aKzLoDUOTBEbnDxQWm&}ddwx4uQOVtKIC#4M%a zOTFs%MU}`0(J5Z_zIc88ShzGx;nE7U1x1%B1=aYbOS{dCmA7|y%8O4B)wSv!0vcH3 z(ar-+0F_hlC1kw3{jhL0y^i}QSfTE~(6Oi@ScZnu68C$XU?YvmD)07NXl1d|9ntFH^&?*l}5k zsY4E3ddBX_sAI88wgb0jLNz){h6+k>4e>=}yilXCTrkT*#SViE=U zN|b7I(SlHUcw%rG+He=gbb?*fEm5Z^jPHJH@i>nicw<5nuuvM$Y8Q&mltojgrWTus z#YSXOJB^rn@Qz*FqWGRnCDgV?^8jj`(6ox0g4nr;nuH~e&7>4qqO?NY)uO|R=4emV zV2zBsyse*#s;batv?y4Wuy{RaU->rN?me0*KiKjN;9D()k3Qyn#`->yJKn|R!Os(B~?L70h&hed8x7#-!ey? zDO`l^gyX|^K~`;tXW!C_=&m?iQd^i<@*nkDo%v9}FkB%F) zf7Q-Fw=^}S@mo@=DXTU_TY5Adqxzz~A-<(VW1zV0;1&*{Nvr+zMKxpLQJMH(w1irR zK`V94jhADYA(_aueR0w5^{G>F>WuuXEp=5{ExPZl4JD|YhE>L8QU>h#?M;LK5$%Z+ z&->IFSS_O|uT8D91k9>HZ7r*Q0YvvrF^7tK``K76+nKAXAcTfY$6d#{SSrm1sNF4b z-9i)4r(`r!)W)xcsq?WwNv2I5-S@QJ$HqQ;Mo+66PrL|grr9WNTMBjO&C?A7|kIu--&n42AoftZR(V|X8bACSJl)|k17z| zPT)&RBsKwkK){EIvT)liW?c0OteR$*nOe0fSd2c7m&Qlu)mUkK>UKz~RD-6Fns}km zavTm;S65cYi?<1j)^sV_g3fvc4Gq4Aw!M_L_C*tdMH9mzbYYJ!qVc{l;nOg69nN7& zk8&s|M7LY$41h;Fk}vK&thVD!(j1A}+9pXgq7$OpjluFN^a-f2vN*oo*@b0mdsOxk z^le_d-GH-5vvo*aay)j_a-+qdxN=Ht62BP>R(Ge&nx=>q z6PLHcMaivLzh@qE?C@|+Wq8=oFdj6WbGRMnP|?F0;F&Io_FY)JyocI&FVnf$_hRX8 zIl89dOUuz0f+Ex`YN$o$Ozy{-%5Dl)F zA3fOZUWn%u9k;n2y8EY);I%$^sw{gA;dYEsl zTCvTodeM!eN7NvtPFsw3ah{XAo2RR^-up<6RY8>C@dh> z#J^(YG*=>;ty|H60Vsr04e?YR8eK%8H6Gs$puvN0(DBEOxL5q1c}u9m@usanx5<-B zt7~e}X|Y{5R^Gp|EN@&E#S@|c&bV^S)#By-7YkQrG(Hl`8(sTKE24qRl_e!87NW8Q zg+CQl$FAvV5{sufQKo5SbQ?NkYWoN1Sb1p%OJ=r(jlK~?uNHkpi5*y6izjy+tb?3* zLS->3bo+-cn#Vb0woOZwgL;7!UqT9MD)AR4v^_xI)N9(m2Gi1ilv8YX(3S)G;*D-? z(YC5I-fH@8wp!ec(D4|38Hz4j=ss7CxUQ)zs*Fu8vmysVOv|2oe^4hYR(kiqZ zwqGNt`_5=obSPM+ene~=545%CO{Y1N#`{Y>{zezWSWb4FQ)UAsp<kG;KSNI z9Ea%o5}jR2i_yoEBK+MMO@Zwx>JWOMkPV`WmxG+^> zRFin84~kEa@#?5PTTp{$lDOUotQYKwUPY*=M7_g`wajr?va%y@P+&lOA3_&n)gE;g8u2CS z!8z7h<9l3Cbe&M3MslKWD>2oRuxfdl>W3opmNz3TM5hslLRo98apbr9sS1BrE~-Sr z?cG(5rAvDxjXn;ekIbmd1y!*xhIAE{o!TQ=6ncRRA4IC?Yqokk3KmB%TVm}J!nvRq zZpo(~Gb~6nz`Ny`(4O466RK49X|sSf$t#0D2l$?^(BMi(idCUc_2v zCYDY&X=K+jXbCNeWBd^Jv6dX?x_1-b!O) zNJl!s4mv_Fz>n(Fo1q|n#0cn^xb4|Ey@;+S^0#iqY!8*vKsV4QBT56kly0P(=w%Qb z1;Nn}41i$ZPP&W1lVGZ%}hGzh6KyiERaEk;=L_6yt z&UJ|O)JFQs4q0ABUkw2wAdFP<5e8!QR+Zq;C3Jzl4$%bYtq>fqr7qAr=$*tu;$a9* zgx~}Pz2oiMt6<*~!%d6NTM;Y4jr1NwL7;DDd7U^E0{AQ-!YzLnlf-v+@r2nrx5 z{C}8*K<~q)zYl_L2|eXMVNr_2ndRh8HV8h8WkZu?;sNQ~ERdbNUPVOZqGNYx*1dTlzctd-@0Z zNBSrFXZjcVSNb>l2>m<#2mL4g7yUQ=5B)DgFn}Q$ilG^XVHu9$8G#WQiIEu{qh}0^ zkufo5#==;c9LC1j83*HJav2ws$G8~}<7Iq|p9wI%nBGhurZ3Zv>CYU+9L)@11~P+~ zd}c5+ggJ&8$_!(MGb5N|nUTzK%qZq~<^<+MW;8Q~8Ow}g3YbEsh$&`*ObIidnZT4X zCovP5GNzoVU@Dm^W)f4)gqRwpmYK{nazZmIZPchmzl@RXCll3 zW+AhPsb>~5OPB^`DbvU_G0T{fnP#SiX=Ro(E0|N5Q<;^_D&{n1HFG+12D64y7|5K- zoW-2YoWrbT&Slmy=P~Cq7cdtx7cuLZiZ}K@9}85KM+(3ItOjmG7K?4L!A!vl42?De>oD4xT1T7G> zLV#9<6%d>P!Ko0egkTi}r$Mk90yM3j0Rfs;6$l`LOF(cI1ZP8lX3(_|oD0D^2+o55 zO`8`$a3KU}(p(S0#SmNq!KDyf2EhghHbQVY1XnPJkYpgqLXv|d4@m)% zA|xe9%8=ASQV&T3B#n?XLDCFK3nZm0l6FWsAnAl;E+k!$%!8yGk{(EUA?bsp zACdt`_JU+@NcMqbUr6?YBm#&X1<9i!IRKIaAvp+=`H&n8$sv$D29iS|IV=u=U>?T1 ztFF-xYBVkL7&cDJb6}ptCSC9xm}jt27K8@od7K~vLId+6Htdqnz`T;e44ttx&zzap zu~}Ax2IeiCBr`$-a~RuZKxkn8hYhnOG%)YuR9O-ln2&Ix|BBGSe2Ue&k6K{9!09tZ zEihkW>#R@<%y&3R#;676M{M35)B^JhPMHmAfjNRx^a6?C2y~%5xfH*lRO3KZ#zyQ5 z3iBsU&;^@;`3Dx; z8nJbDYzEeX({#;dU~Q@G657v+?J{FCuzA=v9h-smVv8=>3~T_KWyNM-`*co%{1L-W zw4Vsjmz?d+Wu^HHL*jDqxJQBttd>TZ)Y{ zVl%L1*fdKv16zp`b%)KsR(Gfd3N%W|W?*YO7^iz*&rZe0Y1j7rjO+rCL5G6;IH7r&EcS7MRGYNz2ru&X&S`!r6KFfdZFB-rP$X-9%V7c2?(08W$@OM-nFC&`>8!M=v= zvtUWEZ{h?QvLx6;*!aI-NwDuEQ)+wMlNC#XeGe;j>{r+}E0_cOEl!dt%z^!(3+n`!1N(EzqT};(0?dK^4clf6b723# z=Gq5(Bl3sfSQN~8%$VW8{*6_%Pm)upL_=FTGdaufQ~tJDkt4DaOV5GeC@iLZ?3bcs zIPj@0=BWezfn%}6a7_eS8j0BB-300bCtw9_IDHz0`2I6B?17W9p7uRt8oe$V51b*3 z(q({l;LKPr182ZZ-u5&yCDDP)!D2^u-S{0q4x9t0(>{bu(?rSm4V()LXrH8~5lDe; z;5=AkaMy*$EzyzI!1;0F3`b^4NCVd!t7xAZrm03+HUrlWD-F%8GD(mO+|f9F1`VqA zWR&cJo+Bk-9k@YQBgs%)-qPB%6ir%f9Ga4bx`il^uI)*&_L#yANzoo@6_Pzl=7y!H zPjaQ$!6o5c40mku`Xs*6O-HBTMq!0xI`vATLfa_o45i>s#K}8%YGU%#EDCNcPCu}V z?2D2hAGkuCa!?m3lad~|AWo_!azuSPvC!&?Tm?qP=H!k*1#SY?={!6Wb=umlBm01x zh!c07(~~C70C~VwWKt=#cS0x3bfg1rQl>iT0S8=7CiO$R!VGZ)+!U;*WojhrG;~C2 zyWYSru{*uH=cZ$kuG}qY%2}CY-`3Zu9_n**ut?|WCuyH2eV@!j|M6gnDK3%49AXjvJF&5IPGoa10lDvMOeObC$v3QiZUe7Z`5Q4k>D;#-f(Hu zI=~~i4OpS`Mm@Pg7tjdq3M{65_!jjE%}cEAu_Cyuv9R{BNyfs_mt>mfI2|9UahtL& zbkvpA=X!0cuuL9nja0KN_jYhQCco?bG?}A~$-GG%lPwpA`Ljt;jyBX_fpZaCdl7*F(Wu2i6+^twr`wTV< zN%U+RFR@8j58Ulowp$}0J^O;Ys|QVx9C^XrizSOY&2*`IN8_JKNf+GxSTUPns#T1= z9#0Oq;2y-IoGdOGe|6c3V!=Iy zMQgg#5YckRq*KBxxMy(=*-TvVVkhQ+zTPAoXQf_tfl1&%=yIuRwf zSFv(7Gi|)UNk9_Z8(1xyuG5TOUB3|yV!V-Ey!py zhN_#27QwxXv(f?vGRaC^rMiMda35glZVl7aYzXdSEZTYdo_cnTdropB1ov4F1XW%` ztf6E3lP|Ggw|qMZ0D}7lt7WsAXzHsLuOs(?`@W~;)8ZbupL*JS9VidnuUN42<&UO= zHD_qm5!1pQxZk_1ZXzQgEz^PfE3?wYJE04d1NSf1(=q`&4ZpI}q@DbeS0f!9fzQRF zX%8&PMN=~ocsG_zyPhOSYIY84?eSXx{9A%?SQhWYf|>T8udZ>v5AhRX@1)hSqY9%? z!zh?ejROu%K)+Uo7u>c*hVO-Q(Sp!A%^R9xr_LqLJ8666jo**QvgrHYWPzfMa6DHr z=75F~Y(|69;E%#tq&?VVR10*o-3imd55(G;PBBSa2t)N#vo83-ID>ApF8HB1c@J0@ z{0JhvZ)3-Opoj=@q%;1Fss1phH*B+ylPQZ2WCu8v>xQ=eNN*k_2 zeSgZgVr^q>OQd;Fab!V#V`M&B4q`MU{uKOg9f|+8tT+~eqQ1rFR}vex#t{_gYckw7ezZFN+%LT3S#5ZxZ|bb`(W^%d&?0))n=UQ_%PNB&MNA z0|Jvo=69rvAmsr`%)<$PSK7FsDOy7GEFs0eX(LVWm+~7Bql3Q;lB2ir8zDI+4Wom< z3NbqPtNCjnITn&d?G3z{-->`4{1*N?NRESK!FJ+me!GI+Bo}6Y=;$?W{y3GV5i8OS z{LP)z_F%PQCBN6WwaZlFXg}YM5Ec9#kSx&xHu$^wd-!`1V1q1$-m7tqt|dB7<9+=M7%CtYvQ9+(^Tq=15&b!^#!) z&FD8V2QRIgH+Xzis1W~~{8Oi-QFj*X6*y5@zE)~G+W4UQ~5KH1o7^LQ0Z z7mBpDq8}M(iTS)U>hnqdU96wp<3GS&|2`xqZ{t6NVA!nDRo*9oVXDX zNTD7zLaab;p*JGe2p+*J_yoTY5D-maF(j8jvH_AyA=wDYrrkszp)V%a2uBg`Dro9h zhQT$EY>tv^x2}Q5|VH{rsNzJP7qEMMhjzvvBEf^KqwT7gkm8m zlnCR62|}rGk}y#y6Uv1Op;D+4CJEI-NT?BNg~`GcVX81qm@do^W(u=}*+N*DBh(3V zg?Yk!AtEdg77B}mdSS7!L}(C}3XMXOuuM2vXck(8R$;lYLO4Y@Rahyk5>69V3#SWb z2x|mIfWn!=S;E=EIl@}uTw$GXo^ZZ!fpDR4k+5F4Shz&ERJcsoAZ!#a7p@Sl6s{7k z7OoMl6*dW*g)PE$!d79MuwB?8>=bqhyM^n88-yE$n}nN%TZBErt-@a6HsN;R4&hGW zF5zzB9^qbLpKzaWzp!6;KzLAiNO)LyM0iwqOn6*)LU>YmN_bj$MtD|uPIz8;K{z11 zD7+-REW9GTD!eAVF1#VUDZC{d6b=c8g|~%wg#QWe3hxQ;3m*s{3Lgm{3!ey|3ZDs| z3ttFd3SS9d3*QLe3f~Fe3qJ@y3O@-y3%>}z3cm?Qgx`ffgg=G9gujJ+)3Zf`VqAcn}y=V}PqDeH177>w3S|Hg9$>oq-0m)M!c`77VLUI)(PlM!Y zNS+SKGa$JJk_sdtB+rE8S&&4Vt8*Z^7Lw;eavdbmw(5LHUI57pA$bub*F*ARNL~WT zOCgDNAR8dL5t5ff@(M^^3CXJ~4$y*?~2a>l!axWxrgXHayM7xALA$b=h?}p?(kh~X?`yhEA zB=3jhen>t5$p<0%5G2tY`3NM@qWu^oABQAb$Df4cQ;>WblFvZ$Sx7zy$>$;Y0wfPW z@fXy2FW9k{2h{iK=MyW{sqauA^8s^|AiC*DF7)FQWT_UNHLINA;m$8hm-&*5mFMQ zWJu{CrH7OOQbtIbAZ3P>1yWW>+UUZ6m6$7Sf_^MDs!%IeR(s!v%(Zx_2vxyCNa8q zjQy~rs6H~t0)!)~ZwWF0;fU&^fi6KfqWUf%i5a@3)_`zCHTXX(5RRxu`DX^g5!Gn^ z3_v)d8nmA+2uD<7^|J)wh-!fTe+9x3)u8>OfV%Va#c|19-Q9{o?84pW=ZI>cey02! zQH{*cik~B@!S@;Sb3`@9zB~LJQH`q4hMyySL^aqw z5jv6-ha;*n?b+gRL^Yy4V;qjCMy+Rx!x7cU^z3jrq8g3fH4aBqqs^1sCA6O!Q=S

5*&`G24-i2!x7a0?5=P) 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 Z$XaAAO -#include #include "defs.h" - #define MYNAME "alan" #define MAXWPT 1000 /* old 500 */ diff --git a/gpsbabel/an1.cc b/gpsbabel/an1.cc index 4638c21a1..769f17250 100644 --- a/gpsbabel/an1.cc +++ b/gpsbabel/an1.cc @@ -19,13 +19,9 @@ */ -#include -#include -#include -#include +#include "defs.h" #define MYNAME "an1" -#include "defs.h" static gbfile* infile; static gbfile* outfile; diff --git a/gpsbabel/arcdist.cc b/gpsbabel/arcdist.cc index d3916c66b..45053f905 100644 --- a/gpsbabel/arcdist.cc +++ b/gpsbabel/arcdist.cc @@ -19,12 +19,13 @@ */ -#include #include "defs.h" #include "filterdefs.h" #include "grtcirc.h" +#include + #if FILTERS_ENABLED #define MYNAME "Arc filter" diff --git a/gpsbabel/bcr.cc b/gpsbabel/bcr.cc index d71d48a24..4dbbf260a 100644 --- a/gpsbabel/bcr.cc +++ b/gpsbabel/bcr.cc @@ -29,12 +29,9 @@ #include "defs.h" #include "csv_util.h" #include "garmin_tables.h" -#include -#include -#include -#include #include "cet_util.h" #include "inifile.h" +#include #define MYNAME "bcr" diff --git a/gpsbabel/bend.cc b/gpsbabel/bend.cc index 15d89c7ba..44d03592b 100644 --- a/gpsbabel/bend.cc +++ b/gpsbabel/bend.cc @@ -22,10 +22,9 @@ #include "defs.h" #include "filterdefs.h" - #include "grtcirc.h" -#include +#include #define MYNAME "bend" @@ -109,9 +108,9 @@ is_small_angle(double lat_orig, double long_orig, double lat_orig_prev, double heading_diff = heading_next - heading_prev; - return ((abs(heading_diff - 0.0) < minAngle) - || (abs(heading_diff - 180.0) < minAngle) - || (abs(heading_diff - 360.0) < minAngle)); + return ((std::abs(heading_diff - 0.0) < minAngle) + || (std::abs(heading_diff - 180.0) < minAngle) + || (std::abs(heading_diff - 360.0) < minAngle)); } static void diff --git a/gpsbabel/brauniger_iq.cc b/gpsbabel/brauniger_iq.cc index aa76cef7d..35b65c0b9 100644 --- a/gpsbabel/brauniger_iq.cc +++ b/gpsbabel/brauniger_iq.cc @@ -20,7 +20,6 @@ #include "defs.h" #include "gbser.h" -#include static void* serial_handle; diff --git a/gpsbabel/cet.cc b/gpsbabel/cet.cc index 73dfd93c1..aeaf06a7b 100644 --- a/gpsbabel/cet.cc +++ b/gpsbabel/cet.cc @@ -22,11 +22,6 @@ #include "defs.h" #include "cet.h" -#include -#include -#include -#include - /* ! ALL vec PARAMETERS HAVE TO BE A VALID POINTER TO A cet_cs_vec_t RECORD ! */ /* =========================================================================== */ diff --git a/gpsbabel/cet.h b/gpsbabel/cet.h index 0ba382365..62f85b80d 100644 --- a/gpsbabel/cet.h +++ b/gpsbabel/cet.h @@ -22,9 +22,6 @@ #ifndef CET_H #define CET_H -#include -#include - #define CET_ERROR 1 #define CET_SUCCESS 0 diff --git a/gpsbabel/cet_util.cc b/gpsbabel/cet_util.cc index db70e1275..39c1978ef 100644 --- a/gpsbabel/cet_util.cc +++ b/gpsbabel/cet_util.cc @@ -19,13 +19,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA */ - -#include -#include -#include -#include -#include - #include "defs.h" #include "cet.h" #include "cet_util.h" diff --git a/gpsbabel/cet_util.h b/gpsbabel/cet_util.h index c8a58a95f..925cdae51 100644 --- a/gpsbabel/cet_util.h +++ b/gpsbabel/cet_util.h @@ -22,8 +22,6 @@ #ifndef CET_UTIL_H #define CET_UTIL_H -#include -#include #if HAVE_CONFIG_H #include "config.h" #endif diff --git a/gpsbabel/compegps.cc b/gpsbabel/compegps.cc index b6a57f3c1..ef0950efb 100644 --- a/gpsbabel/compegps.cc +++ b/gpsbabel/compegps.cc @@ -60,12 +60,7 @@ #include "csv_util.h" #if CSVFMTS_ENABLED -#include #include -#include -#include -#include -#include #include "jeeps/gpsmath.h" #define MYNAME "CompeGPS" diff --git a/gpsbabel/cst.cc b/gpsbabel/cst.cc index f5f1f0630..f4b5ea6b9 100644 --- a/gpsbabel/cst.cc +++ b/gpsbabel/cst.cc @@ -22,10 +22,6 @@ #include "defs.h" #include "strptime.h" -#include -#include -#include -#include #define MYNAME "cst" diff --git a/gpsbabel/csv_util.cc b/gpsbabel/csv_util.cc index 4bf9d01ce..35692fa73 100644 --- a/gpsbabel/csv_util.cc +++ b/gpsbabel/csv_util.cc @@ -20,9 +20,6 @@ */ -#include -#include -#include #include #include "defs.h" @@ -33,6 +30,8 @@ #include "src/core/logging.h" #include "strptime.h" +#include + #define MYNAME "CSV_UTIL" /* macros */ diff --git a/gpsbabel/defs.h b/gpsbabel/defs.h index 11c6315c3..52df64c1a 100644 --- a/gpsbabel/defs.h +++ b/gpsbabel/defs.h @@ -37,9 +37,6 @@ #include "session.h" #include -#include -#include -#include # include "src/core/datetime.h" @@ -208,6 +205,7 @@ extern const char gpsbabel_version[]; extern time_t gpsbabel_now; /* gpsbabel startup-time; initialized in main.c with time() */ extern time_t gpsbabel_time; /* gpsbabel startup-time; initialized in main.c with current_time(), ! ZERO within testo ! */ extern int geocaches_present; +class QTextStream; extern QTextStream cerr; #define MILLI_TO_MICRO(t) (t * 1000) /* Milliseconds to Microseconds */ diff --git a/gpsbabel/delgpl.cc b/gpsbabel/delgpl.cc index e62f67101..bb9a29d69 100644 --- a/gpsbabel/delgpl.cc +++ b/gpsbabel/delgpl.cc @@ -19,9 +19,6 @@ */ -#include -#include - #include "defs.h" #define MYNAME "GPL" diff --git a/gpsbabel/destinator.cc b/gpsbabel/destinator.cc index 29588dcb4..3a8fd5e4e 100644 --- a/gpsbabel/destinator.cc +++ b/gpsbabel/destinator.cc @@ -22,15 +22,12 @@ */ -#include -#include -#include - #include "defs.h" #include "cet.h" #include "cet_util.h" #include "garmin_fs.h" #include "strptime.h" +#include #define MYNAME "destinator" #define DST_DYN_POI "Dynamic POI" diff --git a/gpsbabel/dmtlog.cc b/gpsbabel/dmtlog.cc index a04ead1a4..4a5679570 100644 --- a/gpsbabel/dmtlog.cc +++ b/gpsbabel/dmtlog.cc @@ -26,10 +26,6 @@ #include "jeeps/gpsmath.h" #include "xmlgeneric.h" -#include -#include -#include - #define MYNAME "dmtlog" #define DEFLATE_BUFF_SIZE 16384 diff --git a/gpsbabel/duplicate.cc b/gpsbabel/duplicate.cc index 770d851d7..a5ca5e81f 100644 --- a/gpsbabel/duplicate.cc +++ b/gpsbabel/duplicate.cc @@ -18,7 +18,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA */ -#include #include "defs.h" #include "filterdefs.h" diff --git a/gpsbabel/easygps.cc b/gpsbabel/easygps.cc index 90fbd8ebd..686412c25 100644 --- a/gpsbabel/easygps.cc +++ b/gpsbabel/easygps.cc @@ -20,7 +20,6 @@ #include "defs.h" -#include static gbfile* file_in; static gbfile* file_out; diff --git a/gpsbabel/energympro.cc b/gpsbabel/energympro.cc index d4fe89477..99bca0ee6 100644 --- a/gpsbabel/energympro.cc +++ b/gpsbabel/energympro.cc @@ -21,7 +21,7 @@ */ #include "defs.h" -#include +#include #include #define MYNAME "energympro" diff --git a/gpsbabel/enigma.cc b/gpsbabel/enigma.cc index 9ccec1f28..0d4e9ce68 100644 --- a/gpsbabel/enigma.cc +++ b/gpsbabel/enigma.cc @@ -21,9 +21,8 @@ */ -#include - #include "defs.h" +#include #define MYNAME "Enigma binary route and waypoint file format" diff --git a/gpsbabel/exif.cc b/gpsbabel/exif.cc index 26795b4ca..53ce84282 100644 --- a/gpsbabel/exif.cc +++ b/gpsbabel/exif.cc @@ -28,15 +28,12 @@ * 1998, version 2.1: http://www.exif.org/Exif2-1.PDF */ -#include -#include -#include -#include - #include "defs.h" #include "garmin_tables.h" #include "jeeps/gpsmath.h" +#include + #define MYNAME "exif" // #define EXIF_DBG diff --git a/gpsbabel/filter_skeleton.cc b/gpsbabel/filter_skeleton.cc index be4535054..0c0f8e3d0 100644 --- a/gpsbabel/filter_skeleton.cc +++ b/gpsbabel/filter_skeleton.cc @@ -29,7 +29,6 @@ #include "defs.h" #include "filterdefs.h" -#include #define MYNAME "filter_skeleton" diff --git a/gpsbabel/format_skeleton.cc b/gpsbabel/format_skeleton.cc index 71e4537eb..4d5aa8873 100644 --- a/gpsbabel/format_skeleton.cc +++ b/gpsbabel/format_skeleton.cc @@ -7,8 +7,8 @@ 1) Copy this file to .c 2) Rename all format_skeleton tokens to . 3) Replace the fictional name and address in the Copyright section below. - As your work is likely built on the work of others, please retain - the original line. + ** As your work is likely built on the work of others, please retain + the original line. ** 4) Create a new section in vecs.c. 5) Add compilation instructions to Makefile. 6) Add sample files (it's better when they're created by the "real" @@ -37,7 +37,6 @@ */ #include "defs.h" -#include #define MYNAME "format_skeleton" diff --git a/gpsbabel/formspec.cc b/gpsbabel/formspec.cc index 517143359..2974aa116 100644 --- a/gpsbabel/formspec.cc +++ b/gpsbabel/formspec.cc @@ -19,10 +19,6 @@ */ -#include -#include -#include - #include "defs.h" format_specific_data* fs_chain_copy(format_specific_data* source) diff --git a/gpsbabel/garmin_fit.cc b/gpsbabel/garmin_fit.cc index 46b267571..6047ebf0e 100644 --- a/gpsbabel/garmin_fit.cc +++ b/gpsbabel/garmin_fit.cc @@ -22,11 +22,9 @@ */ #include "defs.h" -#include #define MYNAME "fit" - static arglist_t fit_args[] = { ARG_TERMINATOR diff --git a/gpsbabel/garmin_fs.h b/gpsbabel/garmin_fs.h index 37eef2976..90db68de4 100644 --- a/gpsbabel/garmin_fs.h +++ b/gpsbabel/garmin_fs.h @@ -24,7 +24,6 @@ #ifndef GARMIN_FS_H #define GARMIN_FS_H -#include #include "defs.h" #include "jeeps/gps.h" diff --git a/gpsbabel/garmin_gpi.cc b/gpsbabel/garmin_gpi.cc index ed524a24b..08b8c95d7 100644 --- a/gpsbabel/garmin_gpi.cc +++ b/gpsbabel/garmin_gpi.cc @@ -49,10 +49,7 @@ #include "jeeps/gpsmath.h" #include "garmin_fs.h" #include "garmin_gpi.h" -#include -#include -#include -#include +#include #define MYNAME "garmin_gpi" diff --git a/gpsbabel/garmin_tables.cc b/gpsbabel/garmin_tables.cc index f08d201ed..14ae1df1f 100644 --- a/gpsbabel/garmin_tables.cc +++ b/gpsbabel/garmin_tables.cc @@ -24,9 +24,6 @@ #include "src/core/logging.h" #include "jeeps/gpsmath.h" -#include -#include - #define MYNAME "garmin_tables" /* MapSource 4.13 */ diff --git a/gpsbabel/garmin_txt.cc b/gpsbabel/garmin_txt.cc index 4b5e33904..d61159003 100644 --- a/gpsbabel/garmin_txt.cc +++ b/gpsbabel/garmin_txt.cc @@ -23,12 +23,6 @@ #include "defs.h" #if CSVFMTS_ENABLED -#include -#include -#include -#include -#include -#include "cet_util.h" #include "csv_util.h" #include "garmin_fs.h" #include "garmin_tables.h" @@ -37,6 +31,8 @@ #include "jeeps/gpsmath.h" #include "strptime.h" +#include + #define MYNAME "garmin_txt" typedef struct gtxt_flags_s { diff --git a/gpsbabel/garmin_xt.cc b/gpsbabel/garmin_xt.cc index fe067f553..12ada95bc 100644 --- a/gpsbabel/garmin_xt.cc +++ b/gpsbabel/garmin_xt.cc @@ -24,7 +24,6 @@ */ #include "defs.h" -#include #define MYNAME "Garmin_XT" #define GARMIN_XT_ELE 31500/65536 diff --git a/gpsbabel/gbfile.cc b/gpsbabel/gbfile.cc index fb1462ecb..7a574cb3e 100644 --- a/gpsbabel/gbfile.cc +++ b/gpsbabel/gbfile.cc @@ -24,11 +24,6 @@ #include "gbfile.h" #include -#include -#include -#include -#include - #if __WIN32__ /* taken from minigzip.c (part of the zlib project) */ diff --git a/gpsbabel/gbfile.h b/gpsbabel/gbfile.h index 2aa17d3bd..e92c75db4 100644 --- a/gpsbabel/gbfile.h +++ b/gpsbabel/gbfile.h @@ -23,14 +23,12 @@ #ifndef GBFILE_H #define GBFILE_H -#include -#include -#include -#include #include "defs.h" #include "cet.h" +#include + struct gbfile_s; typedef struct gbfile_s gbfile; typedef uint32_t gbsize_t; diff --git a/gpsbabel/gdb.cc b/gpsbabel/gdb.cc index 069857091..cac6b0fef 100644 --- a/gpsbabel/gdb.cc +++ b/gpsbabel/gdb.cc @@ -21,63 +21,15 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA */ -/* - History: - - 2005/06/27: initial release (reader only) - 2005/07/26: added write support - 2005/07/27: replaced "tricky code" in route reader - 2005/07/28: fixed handling of single point routes - new option "via" - new option "ver" - fixed compiler warnings - 2005/07/29: fixed compiler warnings - 2005/08/04: Read/write URL (reference data changed) - 2005/08/11: Display sym and name in GDB - 2005/08/12: Neuter proximity and depth for now - 2005/08/29: big CET merge - 2005/09/13: Make sure routes have unique wpt names - 2005/10/10: MSVC fixes from Andrew - 2005/10/17: RJL: Tighten up types of a short handle. It's now a "real" type and not a void * - 2005/10/31: RJL: Add v3 format, min/max, provide defaults, data types, etc - 2005/11/09: RJL: Clarify help text for dropping via points - 2005/12/01: changed waypt's URL to descr for hidden waypoints (-> reference data changed) - removed unused procedure gdb_add_to_hidden - 2005/12/04: additional testo sequences - 2006/02/24: last field of a route is rte url - 2006/02/25: rte_read_loop: zero check replaced with a dummy read (8 unknown bytes) - 2006/03/05: first implementation of Garmin special data (garmin_fs) - 2006/04/04: Use track_add_wpt for all tracks - 2006/04/19: add url i/o to tracks and routes - 2006/04/19: check for empty waypoint shortnames (paranioa) - 2006/11/01: Use version of GPSBabel and date/time of gdb.c (managed by CVS) for watermark - 2007/01/23: add support for GDB version 3 - 2007/02/07: Add special code for unknown bytes in waypoints with class GE 8 (calculated points) - 2007/02/15: Nearly full rewrite. Full support for GDB V3. New option roadbook. - 2007/05/03: Add code for tricky V3 descriptions - 2007/06/18: Tweak some forgotten "flagged" fields - 2007/07/07: Better support for new fields since V3 (postal code/street address/instruction) - 2008/01/09: Fix handling of option category (cat) - 2008/04/27: Add zero to checklist of "unknown bytes" - 2008/08/17: Add concept of route/track line colors - 2008/09/11: Make format 'pipeable' (cached writes using gbfile memapi) -*/ - -#include -#include -#include -#include -#include - #include "defs.h" #include "cet.h" -#include "cet_util.h" #include "csv_util.h" #include "garmin_fs.h" #include "garmin_tables.h" #include "grtcirc.h" #include "jeeps/gpsmath.h" +#include #define MYNAME "gdb" diff --git a/gpsbabel/geo.cc b/gpsbabel/geo.cc index 6d7a37135..3a65f2402 100644 --- a/gpsbabel/geo.cc +++ b/gpsbabel/geo.cc @@ -17,18 +17,14 @@ */ #include "defs.h" - -static char* deficon = NULL; -static char* nuke_placer; - - -static gbfile* ofd; - #include #include #include #include "src/core/file.h" +static char* deficon = NULL; +static char* nuke_placer; +static gbfile* ofd; static QString ostring; static QXmlStreamWriter writer(&ostring); diff --git a/gpsbabel/ggv_ovl.cc b/gpsbabel/ggv_ovl.cc index 2de58a82c..7c195a2c6 100644 --- a/gpsbabel/ggv_ovl.cc +++ b/gpsbabel/ggv_ovl.cc @@ -20,15 +20,12 @@ */ -#include -#include -#include -#include - #include "defs.h" #include "inifile.h" #include "grtcirc.h" +#include + #define MYNAME "ggv_ovl" static diff --git a/gpsbabel/glogbook.cc b/gpsbabel/glogbook.cc index b22e6e094..8568c0d97 100644 --- a/gpsbabel/glogbook.cc +++ b/gpsbabel/glogbook.cc @@ -19,13 +19,13 @@ */ -#include -#include - #include "defs.h" #include "xmlgeneric.h" #include "src/core/file.h" +#include +#include + static gbfile* ofd; static QString ostring; static QXmlStreamWriter writer(&ostring); diff --git a/gpsbabel/gnav_trl.cc b/gpsbabel/gnav_trl.cc index d115a1bf4..663ae3379 100644 --- a/gpsbabel/gnav_trl.cc +++ b/gpsbabel/gnav_trl.cc @@ -20,7 +20,6 @@ */ -#include #include "defs.h" #define MYNAME "gnav_trl" diff --git a/gpsbabel/google.cc b/gpsbabel/google.cc index 1cd22aaa6..669003032 100644 --- a/gpsbabel/google.cc +++ b/gpsbabel/google.cc @@ -17,11 +17,12 @@ */ -#include -#include #include "defs.h" #include "xmlgeneric.h" +#include +#include +#include static char* encoded_points = NULL; static char* encoded_levels = NULL; diff --git a/gpsbabel/googledir.cc b/gpsbabel/googledir.cc index 819c3d001..6ed31e102 100644 --- a/gpsbabel/googledir.cc +++ b/gpsbabel/googledir.cc @@ -25,10 +25,10 @@ * https://developers.google.com/maps/documentation/directions/ */ -#include #include "defs.h" #include "xmlgeneric.h" +#include static QString encoded_points; static QString instructions; diff --git a/gpsbabel/gopal.cc b/gpsbabel/gopal.cc index 3bdb511fd..1b78d4649 100644 --- a/gpsbabel/gopal.cc +++ b/gpsbabel/gopal.cc @@ -49,13 +49,11 @@ */ #include "defs.h" -#include #include "csv_util.h" -#include -#include #include "strptime.h" #include "jeeps/gpsmath.h" #include "grtcirc.h" +#include #define MYNAME "gopal" static gbfile* fin, *fout; @@ -317,7 +315,7 @@ gopal_read(void) } /* Error handling: in the tracklog of my device sometimes "jump" waypoints ;-) */ if ((optclean) && - (((wpt->longitude==0.0)|| (wpt->latitude==0.0)||(abs(wpt->latitude)>90)||(abs(wpt->longitude)>180))|| + (((wpt->longitude==0.0)|| (wpt->latitude==0.0)||(std::abs(wpt->latitude)>90)||(std::abs(wpt->longitude)>180))|| ((speed>maxspeed)||(speed 1) { diff --git a/gpsbabel/gpssim.cc b/gpsbabel/gpssim.cc index 5b0b97cc2..848798783 100644 --- a/gpsbabel/gpssim.cc +++ b/gpsbabel/gpssim.cc @@ -19,9 +19,9 @@ */ -#include #include "defs.h" +#include #define MYNAME "gpssim" diff --git a/gpsbabel/gpsutil.cc b/gpsbabel/gpsutil.cc index 19ba02a23..245a3b3ee 100644 --- a/gpsbabel/gpsutil.cc +++ b/gpsbabel/gpsutil.cc @@ -19,10 +19,10 @@ */ -#include #include "defs.h" #include "magellan.h" +#include static gbfile* file_in, *file_out; static short_handle mkshort_handle; diff --git a/gpsbabel/gpx.cc b/gpsbabel/gpx.cc index 475b58a39..6e0528c3f 100644 --- a/gpsbabel/gpx.cc +++ b/gpsbabel/gpx.cc @@ -24,18 +24,19 @@ #include "garmin_fs.h" #include "garmin_tables.h" #include "src/core/logging.h" -#include -#include -static QXmlStreamReader* reader; #include "src/core/file.h" #include "src/core/xmlstreamwriter.h" #include "src/core/xmltag.h" +#include #include #include #include +#include + +static QXmlStreamReader* reader; static xml_tag* cur_tag; static QString cdatastr; static char* opt_logpoint = NULL; diff --git a/gpsbabel/grtcirc.cc b/gpsbabel/grtcirc.cc index f2a01599f..a29d69b3c 100644 --- a/gpsbabel/grtcirc.cc +++ b/gpsbabel/grtcirc.cc @@ -19,13 +19,13 @@ */ +#include "defs.h" +#include "grtcirc.h" + #include #include #include -#include "defs.h" -#include "grtcirc.h" - static const double EARTH_RAD = 6378137.0; static void crossproduct(double x1, double y1, double z1, diff --git a/gpsbabel/gtrnctr.cc b/gpsbabel/gtrnctr.cc index 90bd8f22b..47c4311e3 100644 --- a/gpsbabel/gtrnctr.cc +++ b/gpsbabel/gtrnctr.cc @@ -470,7 +470,7 @@ gtc_write(void) } void -gtc_trk_s(const xg_string , const QXmlStreamAttributes*) +gtc_trk_s(xg_string, const QXmlStreamAttributes*) { trk_head = route_head_alloc(); track_add_head(trk_head); diff --git a/gpsbabel/gui/setup.iss b/gpsbabel/gui/setup.iss index 967818a5f..d37f17dc7 100755 --- a/gpsbabel/gui/setup.iss +++ b/gpsbabel/gui/setup.iss @@ -1,85 +1,85 @@ -; -; NOTE: setup.iss is generated from setup.iss.in via autoconf. -; The generated setup.iss is checked in to help keep the version numbers -; synchronized. -; -; Script for generating installation setup program for GPSBabel -; Uses the Inno setup compiler. Typically used from the command -; line "makesetup.bat" which copies QT system files which -; the Innosetup compiler cannot handle. -; -; So it is not a good idea to run this file from the Inno Setup GUI. - -[Setup] -; NOTE: The value of AppId uniquely identifies this application. -; Do not use the same AppId value in installers for other applications. -; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) -AppId={{1B8FE958-A304-4902-BF7A-4E2F0F5B7017} -AppName=GPSBabel -AppVerName=GPSBabel 1.5.1 -AppPublisher=GPSBabel -AppPublisherURL=http://www.gpsbabel.org -AppSupportURL=http://www.gpsbabel.org -AppUpdatesURL=http://www.gpsbabel.org -DefaultDirName={pf}\GPSBabel -DefaultGroupName=GPSBabel -OutputDir=release -OutputBaseFilename=GPSBabel-1.5.1-Setup -SetupIconFile=images\babel2.ico -Compression=lzma -SolidCompression=yes -LicenseFile=COPYING.txt - -[Languages] -Name: "english"; MessagesFile: "compiler:Default.isl" - -[Tasks] -Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked - -[Files] -; This isn't as wreckless as it seems; these directories are populated on a -; controlled way by the batch file. -Source: qtdir\bin\*.dll; DestDir: "{app}"; Flags: ignoreversion -Source: qtdir\plugins\*; DestDir: "{app}\plugins"; Flags: ignoreversion recursesubdirs createallsubdirs - -Source: gmapbase.html; DestDir: "{app}"; Flags: ignoreversion -Source: qt.conf; DestDir: "{app}"; Flags: ignoreversion - -Source: \gpsbabel\gui\release\gpsbabelfe.exe; DestDir: "{app}"; Flags: ignoreversion -;Source: release\libexpat.dll; DestDir: "{app}"; Flags: ignoreversion -Source: \gpsbabel\gpsbabel\release\gpsbabel.exe; DestDir: "{app}"; Flags: ignoreversion -; Source: release\help\*; DestDir: "{app}\help"; Flags: ignoreversion recursesubdirs createallsubdirs - -; Translation strings extracted from source code. Include it in the dist -; so that users can translate if they want to. -; Source: gpsbabel_*.ts; DestDir: "{app}\translations"; Flags: ignoreversion -; Source: gpsbabelfe_*.ts; DestDir: "{app}\translations"; Flags: ignoreversion - -; Compiled translation strings that are used at runtime. -; Source: gpsbabel_*.qm; DestDir: "{app}\translations"; Flags: ignoreversion -Source: gpsbabelfe*.qm; DestDir: "{app}\translations"; Flags: ignoreversion - -; Now translations from Qt's own UI stuff. -Source: qtdir\translations\*; DestDir: "{app}\translations"; Flags: ignoreversion recursesubdirs createallsubdirs - -; Miscellaneous -Source: COPYING.txt; DestDir: {app}; Flags: ignoreversion -; Source: AUTHORS; DestDir: {app}; Flags: ignoreversion -; Source: README.contrib; DestDir: {app}; Flags: ignoreversion -; Source: README.gui; DestDir: {app}; Flags: ignoreversion - - -; NOTE: Don't use "Flags: ignoreversion" on any shared system files - -[Icons] -Name: "{group}\GPSBabel"; Filename: "{app}\gpsbabelfe.exe" -Name: "{commondesktop}\GPSBabel"; Filename: "{app}\gpsbabelfe.exe"; Tasks: desktopicon - -[Run] -Filename: "{app}\gpsbabelfe.exe"; Description: "{cm:LaunchProgram,GPSBabelFE}"; Flags: nowait postinstall skipifsilent - -[Registry] -Root: HKCU; Subkey: "Software\GPSBabel"; Flags: uninsdeletekeyifempty -Root: HKCU; Subkey: "Software\GPSBabel\GPSBabel"; Flags: uninsdeletekey -Root: HKCU; Subkey: "Software\GPSBabel\GPSBabelFE"; Flags: uninsdeletekey - +; +; NOTE: setup.iss is generated from setup.iss.in via autoconf. +; The generated setup.iss is checked in to help keep the version numbers +; synchronized. +; +; Script for generating installation setup program for GPSBabel +; Uses the Inno setup compiler. Typically used from the command +; line "makesetup.bat" which copies QT system files which +; the Innosetup compiler cannot handle. +; +; So it is not a good idea to run this file from the Inno Setup GUI. + +[Setup] +; NOTE: The value of AppId uniquely identifies this application. +; Do not use the same AppId value in installers for other applications. +; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) +AppId={{1B8FE958-A304-4902-BF7A-4E2F0F5B7017} +AppName=GPSBabel +AppVerName=GPSBabel 1.5.1 +AppPublisher=GPSBabel +AppPublisherURL=http://www.gpsbabel.org +AppSupportURL=http://www.gpsbabel.org +AppUpdatesURL=http://www.gpsbabel.org +DefaultDirName={pf}\GPSBabel +DefaultGroupName=GPSBabel +OutputDir=release +OutputBaseFilename=GPSBabel-1.5.1-Setup +SetupIconFile=images\babel2.ico +Compression=lzma +SolidCompression=yes +LicenseFile=COPYING.txt + +[Languages] +Name: "english"; MessagesFile: "compiler:Default.isl" + +[Tasks] +Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked + +[Files] +; This isn't as wreckless as it seems; these directories are populated on a +; controlled way by the batch file. +Source: qtdir\bin\*.dll; DestDir: "{app}"; Flags: ignoreversion +Source: qtdir\plugins\*; DestDir: "{app}\plugins"; Flags: ignoreversion recursesubdirs createallsubdirs + +Source: gmapbase.html; DestDir: "{app}"; Flags: ignoreversion +Source: qt.conf; DestDir: "{app}"; Flags: ignoreversion + +Source: \gpsbabel\gui\release\gpsbabelfe.exe; DestDir: "{app}"; Flags: ignoreversion +;Source: release\libexpat.dll; DestDir: "{app}"; Flags: ignoreversion +Source: \gpsbabel\gpsbabel\release\gpsbabel.exe; DestDir: "{app}"; Flags: ignoreversion +; Source: release\help\*; DestDir: "{app}\help"; Flags: ignoreversion recursesubdirs createallsubdirs + +; Translation strings extracted from source code. Include it in the dist +; so that users can translate if they want to. +; Source: gpsbabel_*.ts; DestDir: "{app}\translations"; Flags: ignoreversion +; Source: gpsbabelfe_*.ts; DestDir: "{app}\translations"; Flags: ignoreversion + +; Compiled translation strings that are used at runtime. +; Source: gpsbabel_*.qm; DestDir: "{app}\translations"; Flags: ignoreversion +Source: gpsbabelfe*.qm; DestDir: "{app}\translations"; Flags: ignoreversion + +; Now translations from Qt's own UI stuff. +Source: qtdir\translations\*; DestDir: "{app}\translations"; Flags: ignoreversion recursesubdirs createallsubdirs + +; Miscellaneous +Source: COPYING.txt; DestDir: {app}; Flags: ignoreversion +; Source: AUTHORS; DestDir: {app}; Flags: ignoreversion +; Source: README.contrib; DestDir: {app}; Flags: ignoreversion +; Source: README.gui; DestDir: {app}; Flags: ignoreversion + + +; NOTE: Don't use "Flags: ignoreversion" on any shared system files + +[Icons] +Name: "{group}\GPSBabel"; Filename: "{app}\gpsbabelfe.exe" +Name: "{commondesktop}\GPSBabel"; Filename: "{app}\gpsbabelfe.exe"; Tasks: desktopicon + +[Run] +Filename: "{app}\gpsbabelfe.exe"; Description: "{cm:LaunchProgram,GPSBabelFE}"; Flags: nowait postinstall skipifsilent + +[Registry] +Root: HKCU; Subkey: "Software\GPSBabel"; Flags: uninsdeletekeyifempty +Root: HKCU; Subkey: "Software\GPSBabel\GPSBabel"; Flags: uninsdeletekey +Root: HKCU; Subkey: "Software\GPSBabel\GPSBabelFE"; Flags: uninsdeletekey + diff --git a/gpsbabel/height.cc b/gpsbabel/height.cc index 8b48d0a75..36a27f10b 100644 --- a/gpsbabel/height.cc +++ b/gpsbabel/height.cc @@ -21,10 +21,10 @@ */ -#include #include "defs.h" #include "filterdefs.h" +#include #define MYNAME "height" diff --git a/gpsbabel/holux.cc b/gpsbabel/holux.cc index b6838251e..8a91eb196 100644 --- a/gpsbabel/holux.cc +++ b/gpsbabel/holux.cc @@ -25,13 +25,9 @@ History: */ /* This module is for the holux (gm-100) .wpo format */ - - -#include #include "defs.h" #include "holux.h" - static gbfile* file_in, *file_out; static unsigned char* HxWFile; static short_handle mkshort_handle; diff --git a/gpsbabel/html.cc b/gpsbabel/html.cc index 6c7265d1d..0610599c6 100644 --- a/gpsbabel/html.cc +++ b/gpsbabel/html.cc @@ -23,7 +23,6 @@ #include "defs.h" #include "jeeps/gpsmath.h" #include "src/core/xmltag.h" -#include static gbfile* file_out; static short_handle mkshort_handle; diff --git a/gpsbabel/humminbird.cc b/gpsbabel/humminbird.cc index 76168f73a..a3255f12a 100644 --- a/gpsbabel/humminbird.cc +++ b/gpsbabel/humminbird.cc @@ -19,12 +19,9 @@ */ -#include -#include -#include -#include - #include "defs.h" +#include +#include #define MYNAME "humminbird" diff --git a/gpsbabel/igc.cc b/gpsbabel/igc.cc index c1feb527b..e34a2f3c2 100644 --- a/gpsbabel/igc.cc +++ b/gpsbabel/igc.cc @@ -23,11 +23,10 @@ * 59 Temple Place - Suite 330, Boston, MA 02111 USA */ +#include "defs.h" #include #include -#include "defs.h" - static gbfile* file_in, *file_out; static char manufacturer[4]; static const route_head* head; diff --git a/gpsbabel/ignrando.cc b/gpsbabel/ignrando.cc index 40ca97980..c113c4c04 100644 --- a/gpsbabel/ignrando.cc +++ b/gpsbabel/ignrando.cc @@ -19,15 +19,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA */ -#include -#include -#include -#include - -#include - #include "defs.h" #include "xmlgeneric.h" +#include #define MYNAME "IGNRando" diff --git a/gpsbabel/igo8.cc b/gpsbabel/igo8.cc index def2a2861..16db80f4d 100644 --- a/gpsbabel/igo8.cc +++ b/gpsbabel/igo8.cc @@ -61,8 +61,6 @@ */ -#include -#include #include "defs.h" #include "cet.h" #include "cet_util.h" diff --git a/gpsbabel/ik3d.cc b/gpsbabel/ik3d.cc index a45b5e781..fd853ef72 100644 --- a/gpsbabel/ik3d.cc +++ b/gpsbabel/ik3d.cc @@ -20,10 +20,10 @@ */ -#include #include "defs.h" #include "xmlgeneric.h" +#include static arglist_t ikt_args[] = { ARG_TERMINATOR diff --git a/gpsbabel/inifile.cc b/gpsbabel/inifile.cc index d63216b29..8ff13a772 100644 --- a/gpsbabel/inifile.cc +++ b/gpsbabel/inifile.cc @@ -18,11 +18,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA */ -#include -#include -#include -#include - #include "defs.h" #include "inifile.h" diff --git a/gpsbabel/itracku.cc b/gpsbabel/itracku.cc index 958058591..6d4241864 100644 --- a/gpsbabel/itracku.cc +++ b/gpsbabel/itracku.cc @@ -30,9 +30,9 @@ */ #include "defs.h" +#include "gbser.h" #include #include -#include "gbser.h" #define MYNAME "itracku" diff --git a/gpsbabel/jogmap.cc b/gpsbabel/jogmap.cc index ffb47fb06..ed43278eb 100644 --- a/gpsbabel/jogmap.cc +++ b/gpsbabel/jogmap.cc @@ -20,12 +20,12 @@ */ -#include #include "defs.h" -#include "xmlgeneric.h" -#include "jeeps/gpsmath.h" #include "garmin_tables.h" +#include "jeeps/gpsmath.h" +#include "xmlgeneric.h" +#include static route_head* trk; diff --git a/gpsbabel/jtr.cc b/gpsbabel/jtr.cc index c58a3225e..e8427d199 100644 --- a/gpsbabel/jtr.cc +++ b/gpsbabel/jtr.cc @@ -19,15 +19,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA */ - -#include -#include -#include -#include -#include - #include "defs.h" #include "csv_util.h" +#include #define MYNAME "jtr" diff --git a/gpsbabel/kml.cc b/gpsbabel/kml.cc index 2c8379992..8429f62ae 100644 --- a/gpsbabel/kml.cc +++ b/gpsbabel/kml.cc @@ -19,9 +19,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA */ -#include -#include -#include #ifdef __WIN32__ # include @@ -30,10 +27,12 @@ #include "defs.h" #include "xmlgeneric.h" #include "grtcirc.h" - #include "src/core/file.h" #include "src/core/xmlstreamwriter.h" #include "src/core/xmltag.h" +#include +#include +#include // options static char* opt_deficon = NULL; diff --git a/gpsbabel/lmx.cc b/gpsbabel/lmx.cc index 779914192..2ec469ba3 100644 --- a/gpsbabel/lmx.cc +++ b/gpsbabel/lmx.cc @@ -26,10 +26,9 @@ * we don't implement that at this time in GPSBabel. */ -#include - #include "defs.h" #include "xmlgeneric.h" +#include static gbfile* ofd; static Waypoint* wpt_tmp; diff --git a/gpsbabel/lowranceusr.cc b/gpsbabel/lowranceusr.cc index d786d8ab2..a96bd4bae 100644 --- a/gpsbabel/lowranceusr.cc +++ b/gpsbabel/lowranceusr.cc @@ -33,8 +33,8 @@ #include "defs.h" -#include -#include /* for lat/lon conversion */ +#include +#include /* for lat/lon conversion */ typedef struct lowranceusr_icon_mapping { const int value; @@ -435,7 +435,7 @@ lowranceusr_parse_waypt(Waypoint* wpt_tmp) // Version 3 has a depth field here. if (reading_version >= 3) { float depth_feet = gbfgetflt(file_in); - if (abs(depth_feet - 99999.0) > .1) { + if (std::abs(depth_feet - 99999.0) > .1) { WAYPT_SET(wpt_tmp, depth, FEET_TO_METERS(depth_feet)); } } diff --git a/gpsbabel/lowranceusr4.cc b/gpsbabel/lowranceusr4.cc index a6b59837b..6a936f27b 100644 --- a/gpsbabel/lowranceusr4.cc +++ b/gpsbabel/lowranceusr4.cc @@ -26,7 +26,6 @@ #include "defs.h" -#include #include /* for lat/lon conversion */ #include /* for gmtime */ diff --git a/gpsbabel/maggeo.cc b/gpsbabel/maggeo.cc index 1ba108a10..148b9cd42 100644 --- a/gpsbabel/maggeo.cc +++ b/gpsbabel/maggeo.cc @@ -19,15 +19,12 @@ */ -#include -#include - -#include - #include "defs.h" #include "csv_util.h" #include "xmlgeneric.h" #include "magellan.h" +#include +#include #define MYNAME "maggeo" diff --git a/gpsbabel/magproto.cc b/gpsbabel/magproto.cc index fb0d12374..d513d16b4 100644 --- a/gpsbabel/magproto.cc +++ b/gpsbabel/magproto.cc @@ -20,7 +20,6 @@ */ -#include #include #include diff --git a/gpsbabel/mapasia.cc b/gpsbabel/mapasia.cc index 915c7dd5e..c948791a1 100644 --- a/gpsbabel/mapasia.cc +++ b/gpsbabel/mapasia.cc @@ -25,7 +25,7 @@ #include #include #include "defs.h" -#include "session.h" +//#include "session.h" #define MYNAME "mapasia" diff --git a/gpsbabel/mapfactor.cc b/gpsbabel/mapfactor.cc index f0320ac92..f662eaf5f 100644 --- a/gpsbabel/mapfactor.cc +++ b/gpsbabel/mapfactor.cc @@ -17,13 +17,11 @@ */ #include "defs.h" - +#include "src/core/file.h" +#include "src/core/xmlstreamwriter.h" #include #include #include -#include "src/core/file.h" -#include "src/core/xmlstreamwriter.h" - static gpsbabel::File* oqfile; static QXmlStreamWriter* writer; diff --git a/gpsbabel/mapsend.cc b/gpsbabel/mapsend.cc index 779241c7d..271b49be0 100644 --- a/gpsbabel/mapsend.cc +++ b/gpsbabel/mapsend.cc @@ -18,13 +18,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA */ -#include -#include -#include - #include "defs.h" #include "mapsend.h" #include "magellan.h" +#include static gbfile* mapsend_file_in; static gbfile* mapsend_file_out; diff --git a/gpsbabel/mapsource.cc b/gpsbabel/mapsource.cc index 0fb9f7955..5dea1d846 100644 --- a/gpsbabel/mapsource.cc +++ b/gpsbabel/mapsource.cc @@ -21,13 +21,9 @@ /* #define MPS_DEBUG 0 */ -#include -#include - #include "defs.h" #include "garmin_tables.h" #include "jeeps/gpsmath.h" -#include static gbfile* mps_file_in; static gbfile* mps_file_out; diff --git a/gpsbabel/mkicondoc.cc b/gpsbabel/mkicondoc.cc index 7032c03df..d3ab9509a 100644 --- a/gpsbabel/mkicondoc.cc +++ b/gpsbabel/mkicondoc.cc @@ -2,14 +2,14 @@ // into our doc, http://www.gpsbabel.org/htmldoc-development/GarminIcons.html -#include -#include #include "fatal.cc" #include "util.cc" #include "cet.cc" // #define VERSION "1" #include "globals.cc" #include "jeeps/gpsmath.cc" +//#include +//#include diff --git a/gpsbabel/mmo.cc b/gpsbabel/mmo.cc index 4beb77aac..9b4111446 100644 --- a/gpsbabel/mmo.cc +++ b/gpsbabel/mmo.cc @@ -20,35 +20,8 @@ */ -/* - History: - - 2008/10/18: Initial release - 2008/10/19: Don't write empty names - Add options 'locked' and 'visible' - 2008/11/06: Fix enumeration of objects for empty routes or tracks - Add option "ver" (internal version) to writer - We support write of version: - * 0x11 - reported as " "Memory Map OS Edition 2004, Version 4.2.3 Build 432" - * 0x12 - most files in my test pool :-) - 2008/11/19: Fix routes with a loop but different start and end point - 2008/12/12: Fix object release error - 2010/09/10: Added read support for version 0x18 - (test file created by Memory-Map European Edition, Version 5.4.2, Build 1089). - 2011/10/05: Fixed read support: Track, CurrentPosition, UTF-16 strings - (test file is version 0x18 as written by GPS units running 5.4.4 build 1114). - Strings now written in UTF-16 if necessary. -*/ - -#include -#include -#include -#include -#include -#include -#include - #include "defs.h" +#include #define MYNAME "mmo" diff --git a/gpsbabel/mtk_locus.cc b/gpsbabel/mtk_locus.cc index 299fbfa92..fd4583436 100644 --- a/gpsbabel/mtk_locus.cc +++ b/gpsbabel/mtk_locus.cc @@ -36,12 +36,10 @@ Example usage:: */ -#include -#include -#include #include "defs.h" #include "gbser.h" +#include static route_head* track; diff --git a/gpsbabel/mtk_logger.cc b/gpsbabel/mtk_logger.cc index 322cb7e3e..f48b3508f 100644 --- a/gpsbabel/mtk_logger.cc +++ b/gpsbabel/mtk_logger.cc @@ -52,15 +52,14 @@ */ -#include -#include -#include -#include #include "defs.h" #include "gbser.h" #include "gbfile.h" /* used for csv output */ +#include +#include +#include #define MYNAME "mtk_logger" diff --git a/gpsbabel/mynav.cc b/gpsbabel/mynav.cc index d93d72527..bb3ab87fc 100644 --- a/gpsbabel/mynav.cc +++ b/gpsbabel/mynav.cc @@ -20,9 +20,9 @@ */ -#include - #include "defs.h" +#include +#include #define MYNAME "mynav" @@ -48,25 +48,13 @@ typedef enum { static route_head* mynav_track; static gbfile* fin; -//******************************************************************************* +//*************************************************************************** // local helper functions -//******************************************************************************* +//*************************************************************************** static void -mynav_rd_line(char *buf) +mynav_rd_line(QString line) { - Waypoint* wpt = NULL; - QStringList fields; - QString line; - bool ok; - int val_type; - int val_gps_valid; - double val_lat; - double val_lon; - double val_alt; - int val_time; - - line = buf; - fields = line.split("|"); + QStringList fields = line.split("|"); if (global_opts.debug_level > 1) { qDebug() << "line: " << line; @@ -79,7 +67,8 @@ mynav_rd_line(char *buf) return; // only type 1 and type 5 lines contain coordinates - val_type = fields.at(fld_type).trimmed().toInt(&ok); + bool ok = false; + int val_type = fields.at(fld_type).trimmed().toInt(&ok); if (!ok) return; if (val_type != 1 && val_type != 5) @@ -88,30 +77,30 @@ mynav_rd_line(char *buf) // This field is not present in .trc files, only in .ftn, so // ignore line if present and != 1 if (fields.size() >= fld_gps_valid) { - val_gps_valid = fields.at(fld_gps_valid).trimmed().toInt(&ok); + int val_gps_valid = fields.at(fld_gps_valid).trimmed().toInt(&ok); if (!ok || val_gps_valid != 1) return; } - val_lon = fields.at(fld_lon).trimmed().toDouble(&ok) / 3600000.0; + double val_lon = fields.at(fld_lon).trimmed().toDouble(&ok) / 3600000.0; if (!ok) return; - val_lat = fields.at(fld_lat).trimmed().toDouble(&ok) / 3600000.0; + double val_lat = fields.at(fld_lat).trimmed().toDouble(&ok) / 3600000.0; if (!ok) return; - wpt = new Waypoint; + Waypoint* wpt = new Waypoint; wpt->latitude = val_lat; wpt->longitude = val_lon; if (fields.size() >= fld_altitude) { - val_alt = fields.at(fld_altitude).trimmed().toDouble(&ok); + double val_alt = fields.at(fld_altitude).trimmed().toDouble(&ok); if (ok) wpt->altitude = val_alt; } if (fields.size() >= fld_timestamp) { - val_time = fields.at(fld_timestamp).trimmed().toInt(&ok); + int val_time = fields.at(fld_timestamp).trimmed().toInt(&ok); if (ok) wpt->SetCreationTime(val_time); } @@ -120,9 +109,9 @@ mynav_rd_line(char *buf) } -//******************************************************************************* +//*************************************************************************** // global callbacks called by gpsbabel main process -//******************************************************************************* +//*************************************************************************** static void mynav_rd_init(const char* fname) @@ -141,11 +130,11 @@ mynav_rd_deinit(void) static void mynav_rd(void) { - char * buff; - - while ((buff = gbfgetstr(fin))) { - buff = lrtrim(buff); - if ((*buff == '\0') || (*buff == '#')) { + QString buff; + + while ((buff = gbfgetstr(fin)), !buff.isNull()) { + buff = buff.trimmed(); + if ((buff.isEmpty()) || (buff[0] == '#')) { continue; } mynav_rd_line(buff); diff --git a/gpsbabel/naviguide.cc b/gpsbabel/naviguide.cc index e10e2bfd6..02314c824 100644 --- a/gpsbabel/naviguide.cc +++ b/gpsbabel/naviguide.cc @@ -23,17 +23,13 @@ #include "defs.h" #include "csv_util.h" #include "jeeps/gpsmath.h" -#include -#include #include +#include +#include #define MYNAME "Naviguide" - - - - /************* Specific Naviguide data formats ****************/ /* Naviguide file header */ diff --git a/gpsbabel/navilink.cc b/gpsbabel/navilink.cc index 1a5a79e43..0139c4a26 100644 --- a/gpsbabel/navilink.cc +++ b/gpsbabel/navilink.cc @@ -347,19 +347,12 @@ read_packet(unsigned type, void* payload, return TRUE; } -static time_t +static QDateTime decode_datetime(const unsigned char* buffer) { - struct tm tm; - - tm.tm_sec = buffer[5]; - tm.tm_min = buffer[4]; - tm.tm_hour = buffer[3]; - tm.tm_mday = buffer[2]; - tm.tm_mon = buffer[1] - 1; - tm.tm_year = buffer[0] + 100; - - return mkgmtime(&tm); + QTime tm(buffer[3], buffer[4], buffer[5]); + QDate dt(2000 + buffer[0], buffer[1], buffer[2]); + return QDateTime(dt, tm, Qt::UTC); } static void diff --git a/gpsbabel/navitel.cc b/gpsbabel/navitel.cc index 2d452c1de..13a46eee3 100644 --- a/gpsbabel/navitel.cc +++ b/gpsbabel/navitel.cc @@ -19,7 +19,6 @@ */ -#include #include "defs.h" #include "gbfile.h" #include "jeeps/gpsmath.h" diff --git a/gpsbabel/parse.cc b/gpsbabel/parse.cc index 68223dee5..ec1739a75 100644 --- a/gpsbabel/parse.cc +++ b/gpsbabel/parse.cc @@ -20,16 +20,10 @@ */ -#include -#include -#include -#include -#include -#include - #include "defs.h" #include "jeeps/gpsmath.h" #include "strptime.h" +#include /* * parse_distance: diff --git a/gpsbabel/pcx.cc b/gpsbabel/pcx.cc index 7aff32e42..02c9b756e 100644 --- a/gpsbabel/pcx.cc +++ b/gpsbabel/pcx.cc @@ -19,12 +19,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA */ -#include -#include #include "defs.h" #include "garmin_tables.h" #include "csv_util.h" +#include static gbfile* file_in, *file_out; static short_handle mkshort_handle; diff --git a/gpsbabel/pocketfms_fp.cc b/gpsbabel/pocketfms_fp.cc index 96fa2bc34..744747dbb 100644 --- a/gpsbabel/pocketfms_fp.cc +++ b/gpsbabel/pocketfms_fp.cc @@ -19,10 +19,10 @@ */ -#include #include "defs.h" #include "xmlgeneric.h" +#include static int isFirst = 1; static route_head* route = NULL; diff --git a/gpsbabel/position.cc b/gpsbabel/position.cc index 3af01914d..79066e7ee 100644 --- a/gpsbabel/position.cc +++ b/gpsbabel/position.cc @@ -18,11 +18,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA */ -#include #include "defs.h" #include "filterdefs.h" #include "grtcirc.h" +#include #if FILTERS_ENABLED diff --git a/gpsbabel/psitrex.cc b/gpsbabel/psitrex.cc index afcafdc48..53562c04e 100644 --- a/gpsbabel/psitrex.cc +++ b/gpsbabel/psitrex.cc @@ -19,9 +19,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA */ -#include -#include - #include "defs.h" #include "garmin_tables.h" #include diff --git a/gpsbabel/queue.cc b/gpsbabel/queue.cc index 7cbff5dd6..7a21998f2 100644 --- a/gpsbabel/queue.cc +++ b/gpsbabel/queue.cc @@ -20,7 +20,7 @@ */ #include "queue.h" -#include "stddef.h" +#include void enqueue(queue* new_el, queue* old) diff --git a/gpsbabel/saroute.cc b/gpsbabel/saroute.cc index e01ce7109..0350357d4 100644 --- a/gpsbabel/saroute.cc +++ b/gpsbabel/saroute.cc @@ -19,13 +19,11 @@ */ -#include -#include -#include #define MYNAME "saroute" #include "defs.h" #include "grtcirc.h" +#include gbfile* infile; diff --git a/gpsbabel/sbn.cc b/gpsbabel/sbn.cc index 08d371043..d19c3c7d5 100644 --- a/gpsbabel/sbn.cc +++ b/gpsbabel/sbn.cc @@ -21,7 +21,6 @@ #include "defs.h" #include "navilink.h" -#include #define MYNAME "sbn" diff --git a/gpsbabel/sbp.cc b/gpsbabel/sbp.cc index 79734a4f5..0f4367da4 100644 --- a/gpsbabel/sbp.cc +++ b/gpsbabel/sbp.cc @@ -22,7 +22,6 @@ #include "defs.h" #include "navilink.h" -#include #define MYNAME "sbp" diff --git a/gpsbabel/skyforce.cc b/gpsbabel/skyforce.cc index 954bc1d19..dad6e9808 100644 --- a/gpsbabel/skyforce.cc +++ b/gpsbabel/skyforce.cc @@ -21,11 +21,9 @@ */ -#include -#include -#include #include "defs.h" +#include #define MYNAME "skyforce" diff --git a/gpsbabel/skytraq.cc b/gpsbabel/skytraq.cc index 081c06b8d..0e9194ca7 100644 --- a/gpsbabel/skytraq.cc +++ b/gpsbabel/skytraq.cc @@ -23,11 +23,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA */ -#include -#include - #include "defs.h" #include "gbser.h" +#include #define MYNAME "skytraq" diff --git a/gpsbabel/stmsdf.cc b/gpsbabel/stmsdf.cc index 3a0e4148d..3b2a324a0 100644 --- a/gpsbabel/stmsdf.cc +++ b/gpsbabel/stmsdf.cc @@ -31,11 +31,6 @@ #if CSVFMTS_ENABLED -#include -#include -#include -#include - #include "csv_util.h" #include "strptime.h" #include "jeeps/gpsmath.h" diff --git a/gpsbabel/subrip.cc b/gpsbabel/subrip.cc index 3f8f81912..3660130e7 100644 --- a/gpsbabel/subrip.cc +++ b/gpsbabel/subrip.cc @@ -21,7 +21,6 @@ */ #include "defs.h" -#include #define MYNAME "subrip" diff --git a/gpsbabel/swapdata.cc b/gpsbabel/swapdata.cc index b6350e68d..209442bc9 100644 --- a/gpsbabel/swapdata.cc +++ b/gpsbabel/swapdata.cc @@ -22,7 +22,6 @@ #include "defs.h" #include "filterdefs.h" -#include #define MYNAME "swapdata" diff --git a/gpsbabel/tiger.cc b/gpsbabel/tiger.cc index 702d13df6..b81279167 100644 --- a/gpsbabel/tiger.cc +++ b/gpsbabel/tiger.cc @@ -19,10 +19,9 @@ */ -#include - #include "defs.h" #include "csv_util.h" +#include static gbfile* file_in, *file_out; static short_handle mkshort_handle; diff --git a/gpsbabel/tmpro.cc b/gpsbabel/tmpro.cc index 1875b4964..0ae20fa5f 100644 --- a/gpsbabel/tmpro.cc +++ b/gpsbabel/tmpro.cc @@ -34,7 +34,6 @@ #include "defs.h" #include "csv_util.h" -#include #define MYNAME "TMPro" diff --git a/gpsbabel/tpg.cc b/gpsbabel/tpg.cc index 4655245f4..0c399591f 100644 --- a/gpsbabel/tpg.cc +++ b/gpsbabel/tpg.cc @@ -23,8 +23,6 @@ */ #include "defs.h" -#include -#include #include "jeeps/gpsmath.h" /* for datum conversions */ #define MYNAME "TPG" diff --git a/gpsbabel/tpo.cc b/gpsbabel/tpo.cc index 1e1bdaafd..d7cfc765b 100644 --- a/gpsbabel/tpo.cc +++ b/gpsbabel/tpo.cc @@ -70,12 +70,10 @@ 3.x "recreation" */ -#include -#include -#include #include "defs.h" #include "jeeps/gpsmath.h" /* for datum conversions */ +#include #define MYNAME "TPO" diff --git a/gpsbabel/trackfilter.cc b/gpsbabel/trackfilter.cc index b526ddf21..0439bcac7 100644 --- a/gpsbabel/trackfilter.cc +++ b/gpsbabel/trackfilter.cc @@ -19,35 +19,16 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA */ -/* - 2005-07-20: implemented interval option from Etienne Tasse - 2005-07-26: implemented range option - 2005-07-26: implemented move option - 2005-07-26: implemented merge option - 2005-07-29: warning fixes - 2005-08-01: Add 'static' qualifier when we can (robertl) - 2005-10-04: Add filterdefs to hold protos for filter functions... (robertl) - 2005-10-04: Fix range-check max. value; exit filter, if no more tracks left - 2006-04-06: Add fix, course, and speed options (parkrrrr) - 2006-06-01: Add name option - 2007-01-08: if not really needed disable check for valid timestamps - (based on patch from Vladimir Kondratiev) - 2007-07-26: Allow 'range' together with trackpoints without timestamp - 2010-06-02: Add specified timestamp to each trackpoint (added by sven_luzar) - 2012-05-04: Added 'discard' option to 'merge' to throw out track points without timestamp -*/ - -#include -#include -#include -#include #include "defs.h" #include "filterdefs.h" -#include "strptime.h" #include "grtcirc.h" +#include "strptime.h" #include "xmlgeneric.h" +#include +#include +#include #if FILTERS_ENABLED || MINIMAL_FILTERS #define MYNAME "trackfilter" @@ -1144,9 +1125,9 @@ trackfilter_points_are_same(const Waypoint* wpta, const Waypoint* wptb) // reasonable tradeoff. return - fabs(wpta->latitude - wptb->latitude) < .00001 && - fabs(wpta->longitude - wptb->longitude) < .00001 && - abs(wpta->altitude - wptb->altitude) < 20 && + std::abs(wpta->latitude - wptb->latitude) < .00001 && + std::abs(wpta->longitude - wptb->longitude) < .00001 && + std::abs(wpta->altitude - wptb->altitude) < 20 && (WAYPT_HAS(wpta,course) == WAYPT_HAS(wptb,course)) && (wpta->course == wptb->course) && (wpta->speed == wptb->speed) && diff --git a/gpsbabel/unicsv.cc b/gpsbabel/unicsv.cc index d72928750..aa8c030f3 100644 --- a/gpsbabel/unicsv.cc +++ b/gpsbabel/unicsv.cc @@ -19,17 +19,14 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA */ -#include -#include -#include - #include "defs.h" #include "cet.h" -#include "cet_util.h" #include "csv_util.h" #include "garmin_fs.h" #include "garmin_tables.h" #include "jeeps/gpsmath.h" +#include +#include #define MYNAME "unicsv" diff --git a/gpsbabel/v900.cc b/gpsbabel/v900.cc index fdf656803..0e7d860fb 100644 --- a/gpsbabel/v900.cc +++ b/gpsbabel/v900.cc @@ -180,30 +180,25 @@ v900_rd_deinit(void) } } - /* copied from dg-100.c - slight (incompatible) modification to how the date parameter is used */ -static time_t -bintime2utc(int date, int time) -{ - struct tm gpstime; - - gpstime.tm_sec = time % 100; +QDateTime +bintime2utc(int date, int time) { + int secs = time % 100; time /= 100; - gpstime.tm_min = time % 100; + int mins = time % 100; time /= 100; - gpstime.tm_hour = time; + // What's left in 'time' is hours, ranged 0-23. + QTime tm(time, mins, secs); - /* - * GPS year: 2000+; struct tm year: 1900+ - * GPS month: 1-12, struct tm month: 0-11 - */ - gpstime.tm_mday = date % 100; - date /= 100; - gpstime.tm_mon = date % 100 - 1; + // 'date' starts at 2000 and is YYMMDD + int day = date % 100; date /= 100; - gpstime.tm_year = date + 100; - - return(mkgmtime(&gpstime)); + int month = date % 100; + date /= 100; + // What's left in 'date' is year. + QDate dt(date + 2000, month, day); + + return QDateTime(dt, tm, Qt::UTC); } static void diff --git a/gpsbabel/vecs.cc b/gpsbabel/vecs.cc index c94d9e39b..b29b6fdfc 100644 --- a/gpsbabel/vecs.cc +++ b/gpsbabel/vecs.cc @@ -19,11 +19,11 @@ */ -#include #include "defs.h" #include "csv_util.h" #include "inifile.h" #include "gbversion.h" +#include #define MYNAME "vecs.c" diff --git a/gpsbabel/vidaone.cc b/gpsbabel/vidaone.cc index 8ecc9cb4e..cc66ba61a 100644 --- a/gpsbabel/vidaone.cc +++ b/gpsbabel/vidaone.cc @@ -32,7 +32,6 @@ struct */ #include "defs.h" -#include #include #define MYNAME "vidaone" diff --git a/gpsbabel/vitosmt.cc b/gpsbabel/vitosmt.cc index 041f414a0..41f0d9d27 100644 --- a/gpsbabel/vitosmt.cc +++ b/gpsbabel/vitosmt.cc @@ -19,15 +19,12 @@ */ +#include "defs.h" +#include "grtcirc.h" +#include #include -#include -#include -#include -#include #define MYNAME "vitosmt" -#include "defs.h" -#include "grtcirc.h" static gbfile* infile =NULL; static gbfile* ofs =NULL; diff --git a/gpsbabel/vitovtt.cc b/gpsbabel/vitovtt.cc index 015731113..124742af2 100644 --- a/gpsbabel/vitovtt.cc +++ b/gpsbabel/vitovtt.cc @@ -22,14 +22,10 @@ */ -#include -#include -#include -#include -#include +#include "defs.h" +#include #define MYNAME "vitovtt" -#include "defs.h" #define TM_YEAR_ZERO 1900 #define TM_MONTH_ZERO 1 diff --git a/gpsbabel/vpl.cc b/gpsbabel/vpl.cc index 53242c101..0feb76d87 100644 --- a/gpsbabel/vpl.cc +++ b/gpsbabel/vpl.cc @@ -107,11 +107,9 @@ C - Checksum */ #include "defs.h" -#include #define MYNAME "vpl" - void vpl_parse_75_sentence(const char*); static diff --git a/gpsbabel/waypt.cc b/gpsbabel/waypt.cc index 612c8ba52..aa80eb11a 100644 --- a/gpsbabel/waypt.cc +++ b/gpsbabel/waypt.cc @@ -19,17 +19,16 @@ */ -#include -#include -#include -#include - #include "defs.h" #include "cet_util.h" #include "grtcirc.h" #include "garmin_fs.h" #include "session.h" #include "src/core/logging.h" +#include +#include +#include +#include #if NEWQ QList waypt_list; diff --git a/gpsbabel/wbt-200.cc b/gpsbabel/wbt-200.cc index f9ef2a6c4..060e94196 100644 --- a/gpsbabel/wbt-200.cc +++ b/gpsbabel/wbt-200.cc @@ -21,7 +21,6 @@ #include "defs.h" #include "gbser.h" #include "grtcirc.h" -#include #define MYNAME "WBT-100/200" #define NL "\x0D\x0A" diff --git a/gpsbabel/wfff_xml.cc b/gpsbabel/wfff_xml.cc index b23f22bad..d8a5c106e 100644 --- a/gpsbabel/wfff_xml.cc +++ b/gpsbabel/wfff_xml.cc @@ -17,10 +17,9 @@ */ -#include - #include "defs.h" #include "xmlgeneric.h" +#include /* argument storage */ static char* aicicon =0; diff --git a/gpsbabel/xmlgeneric.cc b/gpsbabel/xmlgeneric.cc index 7acaaafe2..c7a123be2 100644 --- a/gpsbabel/xmlgeneric.cc +++ b/gpsbabel/xmlgeneric.cc @@ -19,17 +19,17 @@ */ +#include "defs.h" +#include "xmlgeneric.h" +#include "cet_util.h" +#include "src/core/file.h" + #include #include #include #include #include -#include "defs.h" -#include "xmlgeneric.h" -#include "cet_util.h" -#include "src/core/file.h" - #define DEBUG_TAG 0 #if DEBUG_TAG #include diff --git a/gpsbabel/xmlgeneric.h b/gpsbabel/xmlgeneric.h index 784a5f5d2..675a517f9 100644 --- a/gpsbabel/xmlgeneric.h +++ b/gpsbabel/xmlgeneric.h @@ -27,6 +27,7 @@ typedef enum { cb_end, } xg_cb_type; +class QXmlStreamAttributes; typedef void (xg_callback)(xg_string, const QXmlStreamAttributes*); typedef struct xg_tag_mapping { diff --git a/gpsbabel/xmltag.cc b/gpsbabel/xmltag.cc index 56e446b71..22578f526 100644 --- a/gpsbabel/xmltag.cc +++ b/gpsbabel/xmltag.cc @@ -19,13 +19,12 @@ */ +#include "defs.h" +#include "src/core/xmltag.h" #include #include #include -#include "defs.h" -#include "src/core/xmltag.h" - static void free_xml_tag(xml_tag* tag) { diff --git a/gpsbabel/xol.cc b/gpsbabel/xol.cc index 3829bc2a6..460380748 100644 --- a/gpsbabel/xol.cc +++ b/gpsbabel/xol.cc @@ -20,12 +20,11 @@ */ -#include - #include "defs.h" #include "xmlgeneric.h" #include "jeeps/gpsmath.h" #include "garmin_tables.h" +#include static Waypoint* wpt; static route_head* trk; diff --git a/gpsbabel/yahoo.cc b/gpsbabel/yahoo.cc index 47823d253..9aec81cb4 100644 --- a/gpsbabel/yahoo.cc +++ b/gpsbabel/yahoo.cc @@ -19,10 +19,9 @@ */ -#include - #include "defs.h" #include "xmlgeneric.h" +#include static Waypoint* wpt_tmp; static char* as; -- 2.30.2